Вниз
Скачать: CL | DM;

Расширение или переделка?   Найти похожие ветки 

← →
Pat ©   (2004-10-19 18:50) [0]

Навеяно темой http://delphimaster.net/view/1-1097254844/
В общем, стоит задача написать одну программу, использующую довольно-таки сложный математический аппарат. Все мат. обеспечение можно представить следующим образом: имеются несколько объектов. Для каждого объекта определен некоторый способ вычисления конечной функции U(t). А вот способы вычисления этой функции оооочень различны. Так же различаются и входные данные (массив реквизитов). Должна иметься возможность получать и отображать графически некоторые промежуточные функции, количество и смысл которых, как правило, отличается для различных объектов. И т.д. просто сейчас даже нет возможности описать все варианты….Единственным общим для каждого объекта являются правила заполнения данных (алгоритм) - получение массива реквизитов, идентификация модели, получение и анализ функции U(t)…ну может и еще что-нибудь.
Вот, собственно, это было введение в проблему :-). Руководители ставят задачу (на начальном этапе) написать данную программу для одного типа объекта, чтобы в последующем ДОБАВИТЬ в нее другие объекты. Так вот это добавление может вылиться в громадную ПЕРЕДЕЛКУ. Да и наверняка, на каком-нибудь этапе, придем к тому, что дальнейшая переделка уже будет невозможна :-(.
Так вот, хотелось бы узнать, имеется ли где-нибудь информация о том, как добавлять, допустим, новые классы с одинаковой функциональностью, но различным содержанием и промежуточными состояниями? Может у кого-нибудь имеются наработки\мысли?


← →
Ega23 ©   (2004-10-19 18:52) [1]

override-методы потомков.

Не понимаю, в чём проблема...


← →
Юрий Зотов ©   (2004-10-19 19:47) [2]

> Pat ©   (19.10.04 18:50)

Посмотрите, как сделан класс TControl - он реализует все то общее, что есть у всех контролов. А его потомки (TWinConterol, TGraphicControl, TEdit, TButton, TLabel, TShape и т.д.) добавляют каждый свое и модифицируют поведение предка каждый по-своему. В итоге имеем большой набор самых разнообразных конечных объектов, но все они происходдят от одного общего предка.

Вам нужно сделать то же самое. То есть:
1. Написать базовый класс (причем так, чтобы от него было удобно порождать другие классы).
2. Всю общую функциональность вынести в этот базовый класс.
3. Все различия реализовать виртуальными методами.
4. Возможно (скорее всего) окажется полезным сделать в этом базовом классе виртуальный конструктор и определить соответствующий ему метакласс (как у TComponent). Это даст возможность работать с любым потомком базового класса через метакласс.

И весь вопрос. Классика ООП, можно сказать.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.021 c
14-1098027858
olookin
2004-10-17 19:44
2004.11.07
И еще... Вероятно, я просто отстал от жизни, но....


1-1097601135
Grrey
2004-10-12 21:12
2004.11.07
ООП можно ли это сделать?


4-1096816084
Teap0t
2004-10-03 19:08
2004.11.07
создаем Сервис под XP


1-1098455411
MRAk
2004-10-22 18:30
2004.11.07
Drawgrid Как вставить картинку в опр ячейку


1-1098511945
Андрей Кравцов
2004-10-23 10:12
2004.11.07
Способы хранения списков строк во время работы программы.




   Наверх