Главная страница
    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.006 c
3-73086
Tanya
2002-04-29 09:41
2002.05.23
Reports


1-73239
Garry
2002-05-10 10:35
2002.05.23
Как отобразить сообщение при наведении мыши на объект?


4-73442
torrin
2002-03-20 20:44
2002.05.23
проблема с правами


1-73258
Filat
2002-05-10 17:59
2002.05.23
Как в *.txt файл записать и считать символы с позиции по позицию?


4-73434
SPeter
2002-03-14 13:16
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский