metaclass: (Default)
[personal profile] metaclass
Удар головой о стенку, обитую войлоком
"Хочу строгой типизации"
Удар головой о стенку, обитую войлоком
"Хочу автоматический вывод типов"
Удар головой о стенку, обитую войлоком
"Хочу метапрограммирование"
переход к началу.

Альтернатива:
для объекта Config регистрируется TypeDescriptionProvider, который создает и возвращает CustomTypeDescriptor, который из ServiceProvider достает XmlConfigProvider, загружает из него список кастомных свойств объекта, для каждого из них генерит ConfigPropertyDescriptor, добавляя к нему CategoryAttribute,DisplayNameAttribute,DescriptionAttribute,иногда TypeConvertorAttribute и ChoiceDescriptionAttribute, указав для них ChoiceConverter, который возвращает StandardValuesCollection, исходя из ChoiceDescriptionAttribute, найденного в TypeDescriptorContext.

Это всего лишь показ объекта в user-friendly виде с локализованными именами пропертей и динамически меняющимся их списком в PropertyGrid.

PS: А тут еще [livejournal.com profile] max_posedon всякую завлекаловку с LVEE про линуксы и железо пишет. Хоть ты точно, на линукс и какой-нибудь трэшак типа руби с питоном пересядь, чтобы этого дотнета с его гирляндами типов никогда не видеть. Или вообще на low-level работу с железом, там уж ТОЧНО НИКОГДА не придется писать что-нить вроде IServiceProviderFactoryOfProviderForServiceProviderFactoryFacade.

Date: 2009-07-15 06:44 am (UTC)
From: [identity profile] metaclass.livejournal.com
Изначальная проблема не в том, что я использую ООП, а в том, что его в экстремальном стиле используют авторы .NET-фреймворка. Причем, судя по всему, они его так используют потому что: а)фетиш б)по другому тогда сделать было невозможно(не было лямбд и нормальных замыканий)

Где-то в интернете валяется статья на тему OOP vs Haskell. Там описывается, что большая часть ООП становится нахрен не нужна при наличии функций высших порядков/лямбд/замыканий. Конкретно в моем описанном случае половина интерфейсов/классов исключительно служат оболочками для реализации этого всего вручную.
Полиморфизм добавляется классами типов, за одним исключением - разные объекты внутрь списка просто так не поместишь для однообразной обработки, поэтому нужен экзистенциальный тип(насколько я понял, это оболочка вокруг обычного типа, накладывающая на него условие вроде "все вложенные типы являются экземплярами класса типов X).
А наследование просто нахрен не нужно, да его и в обычном ООП уже почти не используют - кроме наследования классов от интерфейсов, что в свою очередь и реализуется классами типов.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 24th, 2025 10:30 pm
Powered by Dreamwidth Studios