|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.12.2018, 18:23 | #1 |
Регистрация: 08.12.2018
Сообщений: 6
|
Создание экземпляра подходящего класса
Тема поста звучит немного странно, но я не смог сформулировать лучше.
Я получаю массив данных "универсального" класса (CUniversal). Универсальность этого класса заключается в том, что он содержит кучу полей (на все случаи жизни), в нем может храниться информация хоть о человеке (ФИО, дату рождения и т.п.), хоть об автомобиле (марка автомобиля, год выпуска и т.п.). С таким классом очень не удобно работать, я задумался о его декомпозиции в конкретные классы: CBase - базовый класс содержащий методы и свойства, которые будут и всех его потомков (напр. id) --> CPeople : CBase - содержит общую для всех людей (напр. ФИО и дата рождения) -----> CAdult : CPeople - содержит информацию врослых людей (напр. семейное положение и место работы) -----> ССhild : CPeople - содержит информацию о детях (напр. место учебы) --> CVehicle : CBase - содержит общую информацию о средстве передвижения (напр. цвет) -----> ССar : CVehicle - ... -----> СBike : CVehicle - ... Вроде хорошо вышло отделить плевелы от зерен, можно использовать все прелести ООП. Но как грамотно реализовать создание этих объектов? Меня настораживает то, что все мои классы в конструкторе принимают экземпляр "универсального" класса CUniversal. То есть можно написать ССar(instanceCUniversal), но instanceCUniversal может содержать данные не о машине, а о человеке, и тогда все нужны поля заполнятся нулями либо пустыми строками. Хотелось бы иметь метод принимающий экземпляр CUniversal и возвращающий корректный экземпляр моего класса, но где и как его реализовать? Возможно решение лежит совсем в другом направлении? |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Повторение метода экземпляра класса | polin11 | JavaScript, Ajax | 1 | 21.12.2016 11:32 |
Вызов конструктора производного класса для экземпляра базового класса | max_prorok | Помощь студентам | 5 | 09.09.2015 09:39 |
Создание экземпляра класса по имени | Lasor | Общие вопросы C/C++ | 24 | 17.12.2012 22:28 |
Создание экземпляра класса | biohazard120 | Общие вопросы Delphi | 11 | 15.09.2012 13:23 |
удаление экземпляра класса | Juffin | Общие вопросы Delphi | 5 | 02.11.2010 11:57 |