Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.45 MB
Время: 0.007 c
6-73324
AlexeyVr
2002-03-10 09:15
2002.05.23
WebBrowser


1-73246
VG
2002-05-10 00:19
2002.05.23
Scrolling в TreeView


1-73236
vlad0007
2002-05-10 01:19
2002.05.23
Привет, Мастера!!!


4-73435
sammy
2002-03-19 08:25
2002.05.23
Как закрыть другое приложение?


1-73154
Vladimir(V/S)
2002-05-13 22:02
2002.05.23
Нужно считать дерево каталогов+файлы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский