Форум: "Основная";
Текущий архив: 2002.05.23;
Скачать: [xml.tar.bz2];
ВнизИзбыточность данных при наследовании Найти похожие ветки
← →
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 вся ветка
Форум: "Основная";
Текущий архив: 2002.05.23;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c