У меня в моем приложении три класса User
, Group
, Company
, которые не принадлежат к одному и тому же дереву наследования, как показывают их имена. Каждый класс имеет конструктор, который получает несколько (разных) параметров, например: User(String name, String password, int type)
, Group(String name, String name)
, Company(String name, int employees, boolean isValid)
. Число парааметров, которое требуется каждому конструктору, не одинаково для всех классов. Я создал класс ReadDataFromFile
, чтобы прочитать некоторые данные из txt-файлов и создать новые объекты, передающие данные в виде paaraameters для указанных выше конструкторов. Код этого класса, по-видимому, одинаковый для каждого типа, за исключением одного метода, который создает объекты. Следовательно, нецелесообразно создавать три разных класса, но мне лучше ориентироваться на лучший подход к дизайну.Общий или абстрактный класс?
Мой вопрос заключается в том, является ли подходящий дизайн по этому случаю общим классом или абстрактным классом и реализует в своем подклассе один метод, который отличается createObject()
, предполагая, что необходимые данные, поступающие из файла txt, помещаются в строку массив с различной длиной для каждого типа. Я хотел бы следовать подходу Generic class: class ReadDataFromFile<T>{}
, но я не могу найти, как я должен обрабатывать разные типы, поскольку каждый из них требует вызова другого конструктора. Должен ли я проверить тип с instanceof
? Должен ли я передать методу класс каждого объекта? Или есть лучший способ?
Возможно, вы исправляете то, что не сломано. – vijay