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

Избыточность данных при наследовании   Найти похожие ветки 

← →
MaximatorVeter ©   (2002-05-12 20:03) [0]

Класс TPines наследуется от TTrees.
В конструкторе TTrees инициализируются значения общих видовых свойств(например интенсивность укоренения=10, и т.д.). Если создать массив экземпляров класса TPines, то будет повторяться информация об значениях общих видовых свойств.
Можно ли этого избежать?


← →
Бурундук   (2002-05-12 20:35) [1]

Если эти общевидовые св-ва реализаваны через глобальные переменные - то можно инициализацию таких св-в вынести в отдельную классовую процедуру

implemantation
var
TreesClassPropInitialized: Boolean = False;

class procedure TTrees.InitClassProp;
begin
if TreesClassPropInitialized then Exit;
TreesClassPropInitialized := True;
...
{Инициализация}
end;

constructor TTrees.Create(...);
begin
InitClassProp;
end;


← →
MaximatorVeter ©   (2002-05-12 21:14) [2]

Т.е. если:

var
Pines: array of TPines;
begin
SetLength(Pines,3);
Pines[1]:=TPines.Create;
Pines[2]:=TPines.Create;
Pines[3]:=TPines.Create;
end;

то только первое дерево сосны будет иметь интенсивность укоренения=10, остальные=0.
Не нарушает ли это объектный подход? Указатели может использовать?
Вопрос видимо не простой!


← →
Бурундук   (2002-05-12 21:25) [3]

Если ты хранишь общевидовые свойства в каждом экземпляре,
то никуда не денешься, надо инициализировать их в каждом объекте.
(В принципе, это может быть не так уж накладно).

Много у тебя таких свойств? И их количество постоянно для всех потомков TTrees или могут добавляться новые?


← →
MaximatorVeter ©   (2002-05-12 21:44) [4]

У меня 30-50 деревьев на площадке. И у всех одинаковые значения общевидовых.
Глянь http://niist.ntu-kpi.kiev.ua/USP/uod.html пункт 2.1.3. Хранение параметров и значений объектов. Там есть варианты А,В и С.
Можно (если да,то как) реализовать в Delphi пункты A и B?


← →
Бурундук   (2002-05-12 22:10) [5]

Есть такой вариант:
Для каждого класса создать один специальный объект типа TTreesInfo (или его потомка - так можно добавить общеклассовое свойство), хранящий общеклассовую информацию, а в каждом экземпляре хранить ссылку на него.


← →
MaximatorVeter ©   (2002-05-12 22:49) [6]

Большое спасибо.
Чем по жизни занимаешься и как с тобой можно связаться.



← →
Бурундук   (2002-05-12 23:02) [7]

Занимаюсь я физикой
(Измерением потенциала плазмы на токамаке Т-10 с помощью HIBP).

мой mail: reonid@yahoo.com



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

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



Память: 0.46 MB
Время: 0.01 c
1-73281
agrig
2002-05-11 09:57
2002.05.23
Как узнать, где был фокус до перемещения?


1-73216
Rammst
2002-05-09 22:36
2002.05.23
Языки


1-73285
Doctor Deejay
2002-05-10 18:37
2002.05.23
RichEdit


4-73462
sergey_1
2002-03-25 08:04
2002.05.23
Как получить код возврата консольного прилолжения


1-73262
lipskiy
2002-05-10 15:27
2002.05.23
Как поставить курсор в Edit в начало блока выделения?




   Наверх