Главная страница
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.046 c
1-1098644589
S-Lok
2004-10-24 23:03
2004.11.07
Использование dll в html-файле


1-1098707361
}|{yk
2004-10-25 16:29
2004.11.07
Работа с двумерным вариантным массивом


14-1098293781
zokzok
2004-10-20 21:36
2004.11.07
как у компонента-потомка переписать событие?


3-1097475684
V l a d i m i r
2004-10-11 10:21
2004.11.07
Создание инсталляшки при использовании псевдонимов драйверов?


9-1089902972
Kobik
2004-07-15 18:49
2004.11.07
Косяки с выводом фона.