Иерархическое наследование данных
От: chudo19  
Дата: 22.02.06 11:39
Оценка: 2 (1)
Уж не знаю сюда ли....


Все вроде просто. Есть древовидные данные.
Хотелось бы иметь возможность наследования шаблонов данных.
Например для неких окошек


начальный шаблон

TemplateWindow = 
{
   Image = "...."
   Font = ...
   
}



дополняем шаблон

ConcreateWindow = TemplateWindow 
{
   Font = "..." переопределили фонт.
   Position = ...   добавили новые поля
   Size = ...
}



и так далее разширяем.
Только хотелось бы разширить это до понятие деререва а не плоской структуры.
тоесть задавать шаблон разом для

Window = 
{
  ChildWindow1 = 
  {

  }
  ChildWindow2 = 
  {

  }
}

Вот тут не как не могу придумать набор правил наследования,переопределения. И правила когда наследовать атрибуты от шаблона а когда от парента, итд.
В общем, не хочется изобретать велосипед есть же вот всякие CSS или еще чего чем то похожее.
Может есть какой-нить язык описания данных такой? Или работы посвященные этой теме?
Re: Иерархическое наследование данных
От: Plague Россия 177230800
Дата: 26.02.06 11:46
Оценка:
Здравствуйте, chudo19, Вы писали:

C>Уж не знаю сюда ли....

C>Все вроде просто. Есть древовидные данные.
C>Хотелось бы иметь возможность наследования шаблонов данных.
C>Например для неких окошек
[Skip]...[/Skip]
C>Вот тут не как не могу придумать набор правил наследования,переопределения. И правила когда наследовать атрибуты от шаблона а когда от парента, итд.
C>В общем, не хочется изобретать велосипед есть же вот всякие CSS или еще чего чем то похожее.
C>Может есть какой-нить язык описания данных такой? Или работы посвященные этой теме?

Мое такое мнение... различается приведенный код только "параметрами", т.е. _данными_. А данные, ИМХО, следует отделять от кода. Т.к. в твоем случае сам код, как и поведение классов не изменятся.
Я сейчас вот думаю, где б достать CSS аналог или что еще для описания подобного. Думаю сюда неплохо подойдут XML конфиги. Т.е. грузишь конфиг, создаешь эдакие именованные "прототипы" (по-моему шаблон проектирования Prototype), где есть метод класса, к примеру, clone() для создания обьекта с такими параметрами, а если параметры не подгрузились или еще что, то используем с параметрами по-умолчанию...
Например можно использовать TinyXML для этого... Вот только пугает меня XML тем, что он не очень-то удобен для "ручного" написания больших объёмов. Вот чтоб такое придумать...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.