пятница, 7 октября 2011 г.

Как паттерн Компоновщик подружился с .NET

Наверняка каждый прогер знаком с паттерном "Компоновщик", неоднократно с ним встречался и реализовывал в каждой второй своей программе. Но всегда ли мы реализуем его "как в книжке", или же немного иначе? Как достичь еще большей эффективности при его использовании в приложениях на конкретном языке, например на C#? В этом посте я не открою Америку, не изобрету велосипед, а просто попытаюсь реализовать паттерн более-менее разумным способом для решения более-менее широкого круга задач.

Компоновщик - очень полезный паттерн, позволяющий воспринимать часть как целое, а целое как часть. Это обеспечивает нас возможностью взаимодействовать с иерархическими структурами практически неограниченного уровня вложенности элементов (компонентов). При этом все компоненты имеют прозрачный интерфейс, поэтому, используя компоновщик, мы освобождаемся от необходимости постоянно сверять фактический тип элемента с ожидаемым. Паттерн как бы говорит "все просто: используй Operation( ), а об остальном позаботятся сами компоненты".

вторник, 30 августа 2011 г.

Aiemp Framework. Введение.


В этой статье я напишу про свою разработку, платформу метапрограммирования искусственного интеллекта Aiemp Framework. Это свободное ПО, написанное на языке C# для платформы .NET Framework 4.0, позволяющее создавать экспертные системы (ЭС) и оболочки ЭС, а затем интегрировать их с вашей программой. Я расскажу о мыслях, мотивировавших меня потратить массу свободного и несвободного времени на все затронутые стадии жизненного цикла Aiemp. Я перечислю цели проекта, поясню название и определю его настоящие и будущие возможности, а в конце статьи обозначу текущий статус проекта.