От Чобиток Василий
К Тезка
Дата 03.02.2010 23:29:14
Рубрики WWII; Артиллерия;

Re: А я...

Привет!
>>Предложения, заявления, жалобы есть?
>
>Создание интерфейса на первый взгляд кажется избыточным,

Благодаря ему счетчик получает доступ к реализованным во внешней системе, о которой заранее не знает, методам.

>класс TCounter, имхо, лучше делать наследником TList, а не TStringList.

Там в реализации используется не только список объектов, но и соответствующие им строковые значения, им присваиваются названия частей номера.

>Ну и смысла наследовать от TPersistent при неиспользовании Assign глобально тоже не вижу.

Assign в реализации неоднократно используется, но в первой версии я его использовал и без TPersistent переопределив Assign.

TPersistent нужен для более интересного. Из текстового шаблона я восстанавливаю объекты так:

part := FindClass(re.Match[1]).Create;

FindClass() по текстовому значению может найти только зарегистрированный класс, а регистрировать с помощью RegisterClass() можно только наследников от TPersistent.

P.S. Да, знаю, знаю, но... админы, не будьте гадами!

Предложения, заявления, жалобы есть?
http://armor.kiev.ua/

От Тезка
К Чобиток Василий (03.02.2010 23:29:14)
Дата 03.02.2010 23:51:40

Re: А я...

>Благодаря ему счетчик получает доступ к реализованным во внешней системе, о которой заранее не знает, методам.

Вполне разумно, но при завязке на конкретную систему отчасти теряется смысл универсального счетчика.

>Там в реализации используется не только список объектов, но и соответствующие им строковые значения, им присваиваются названия частей номера.

А что мешает определить соответсвующее свойство как класс? Более громоздко, зато гораздо универсальнее, а именно на универсальность и упор.

>Assign в реализации неоднократно используется, но в первой версии я его использовал и без TPersistent переопределив Assign.

Опять-таки, зависит от задач. ИМХО, здесь проще переодпределять.

>TPersistent нужен для более интересного. Из текстового шаблона я восстанавливаю объекты так:
>part := FindClass(re.Match[1]).Create;
>FindClass() по текстовому значению может найти только зарегистрированный класс, а регистрировать с помощью RegisterClass() можно только наследников от TPersistent.

Ну, такое-то обойти можно и проще все же.

>P.S. Да, знаю, знаю, но... админы, не будьте гадами!

Будут.
>Предложения, заявления, жалобы есть?
http://armor.kiev.ua/