Главная страница
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.066 c
3-1095682111
Галинка
2004-09-20 16:08
2004.11.07
Как узнать версию MS Access


1-1098435118
denis24
2004-10-22 12:51
2004.11.07
Можно ли поменять цвет шрифта в edite с серого на другой ?


14-1097834341
iZEN
2004-10-15 13:59
2004.11.07
Windows Terminal Server и Ctrl + Alt + Del


14-1098335350
Rouse_
2004-10-21 09:09
2004.11.07
Юрия Федорова с днем рождения !!!


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