Главная страница
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.044 c
3-1097385880
softmaster
2004-10-10 09:24
2004.11.07
Выбор записей в DBGRID


14-1098448210
Prohodil Mimo
2004-10-22 16:30
2004.11.07
При помощи какой переменной или функции можно узнать ...


14-1098088437
Aldor_
2004-10-18 12:33
2004.11.07
Народ, у кого есть Matlab/Mathcad или т.п., вычислите, пожалуйста


1-1098766873
samumka
2004-10-26 09:01
2004.11.07
И снова MDI (передача переменных)?


3-1097051119
cad2206
2004-10-06 12:25
2004.11.07
Как лучше сформировать запрос?