Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.07;
Скачать: 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 вся ветка

Текущий архив: 2004.11.07;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.03 c
4-1096483539
antonioxxx
2004-09-29 22:45
2004.11.07
Доступ к аудиокарте


6-1093690901
Turbid
2004-08-28 15:01
2004.11.07
Head-запрос к web-странице


14-1098046049
vecna
2004-10-18 00:47
2004.11.07
порядок инициализации пропертей


14-1098165020
vecna
2004-10-19 09:50
2004.11.07
Stream от МТУ


1-1098855306
wild_arg
2004-10-27 09:35
2004.11.07
OpenDialog и InitialDir property его