Статьи по UML

Паттерны Metadata Mapping и Query Object из каталога PoEAA

Паттерны Metadata Mapping  и Query Object из каталога PoEAA

В статье мы поговорим про Object-Relational Metadata Mapping Patterns из каталога паттернов для архитектуры корпоративных приложений (PoeAA). Мы рассмотрим назначение каждого из них, а так же сильные и слабые стороны. 

Объектно-реляционные структурные паттерны (PoEAA)

Объектно-реляционные структурные паттерны (PoEAA)

В статье мы поговорим про Object-Relational Structural Patterns из каталога паттернов для архитектуры корпоративных приложений (PoEAA). Мы рассмотрим назначение каждого из них, а так же сильные и слабые стороны. 

Паттерны архитектуры источников данных (PoEAA)

Паттерны архитектуры источников данных (PoEAA)

Рассматриваем в статье 4 паттерна из Архитектурных  паттернов источников данных PoEAA:

Row Data Gateway (Шлюз к данным записи)

Active Record (Активная запись)

Table Data Gateway (Шлюз к данным таблицы)

Data Mapper

Шаблоны проектирования "банды четырёх (GoF)"

Шаблоны проектирования "банды четырёх (GoF)"

Статья о Шаблонах (или паттернах) проектирования. Паттерны описывают типичные способы решения часто встречающихся проблем при проектировании программ.

 

Что такое паттерны проектирования?

Паттернами проектирования (Design Patterns) называют решения часто встречающихся проблем в области разработки программного обеспечения. В данном случае предполагается, что есть некоторый набор общих формализованных проблем, которые довольно часто встречаются, и паттерны предоставляют ряд принципов для решения этих проблем.

Поведенческие паттерны: Хранитель (Memento) C#

Поведенческие паттерны:  Хранитель (Memento) C#

В данной статье мы рассматриваем Поведенческий шаблон проектирования "Memento" и его реализацию на .NET

Назначение:

Паттерн Хранитель (Memento) — позволяет выносить внутреннее состояние объекта за его пределы для последующего возможного восстановления объекта без нарушения принципа инкапсуляции.

  • Не нарушая инкапсуляции, паттерн Memento получает и сохраняет за пределами объекта его внутреннее состояние так, чтобы позже можно было восстановить объект в таком же состоянии.
  • Является средством для инкапсуляции "контрольных точек" программы.
  • Паттерн Memento придает операциям "Отмена" (undo) или "Откат" (rollback) статус "полноценного объекта".

Когда использовать Memento?

  • Когда нужно сохранить состояние объекта для возможного последующего восстановления;

  • Когда сохранение состояния должно проходить без нарушения принципа инкапсуляции;

Поведенческие паттерны: Интерпретатор (Interpreter) C#

Поведенческие паттерны:  Интерпретатор (Interpreter) C#

В данной статье мы рассматриваем поведенческий шаблон проектирования "Интерпретатор" и его реализацию на .NET

Назначение:

Паттерн Интерпретатор (Interpreter) определяет представление грамматики для заданного языка и интерпретатор предложений этого языка. Как правило, данный шаблон проектирования применяется для часто повторяющихся операций.

Когда использовать Паттерн Interpreter:

Интерпретатор следует использовать когда вам  необходимо интерпретировать запись в другом языке и тд. Как один из примеров может служить перевод римских цифр в арабские.

Структурные паттерны: Приспособленец (Flyweight) C#

Структурные паттерны: Приспособленец (Flyweight) C#

В данной статье мы рассматриваем структурный шаблон проектирования "Flyweight" и его реализацию на .NET

Назначение:

Паттерн Приспособленец (Flyweight) - шаблон проектирования, который позволяет использовать разделяемые объекты сразу в нескольких контекстах. Данный паттерн используется преимущественно для оптимизации работы с памятью.

Приспособленец это экземпляр объекта, который выдает себя за группу самостоятельных экземпляров.

Когда использовать Flyweight?

  • в приложении используется большое число очень схожих экземпляров заданного класса;
  • (и) часть состояния объекта является контекстной и может быть легко вынесена во внешние структуры;
  • (и) после вынесения части состояния, все экземпляры становятся одинаковыми и это дает возможность заменить их одним;
  • (и) приложение не проверяет идентичность объектов, т.к. в этом случае все якобы самостоятельные экземпляры являются одним объектом.