Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Design Patterns via C#.pdf
Скачиваний:
150
Добавлен:
17.03.2016
Размер:
13.25 Mб
Скачать

15

Предисловие

От авторов

Книга «Design Patterns via C#» не является самостоятельным изданием, описывающим паттерны проектирования, на эту тему уже есть уникальное издание: «Приемы объектно-ориентированного проектирования. Паттерны проектирования», авторами которого являются Эрих Гамма, Ричард Хелм, Ральф Джонсон и Джон Влиссидес. Эта группа авторов известна под творческим псевдонимом - «Банда четырех» (GoF – Gang of Four). Случайным и интересным образом этот псевдоним совпадает с названием левацкой политической фракции Коммунистической Партии Китая, находившейся у власти во времена «Культурной революции» (1966 – 1976 годы). Такое название партии было дано Мао Цзэдуном.

За время своего существования, книга «Приемы объектно-ориентированного проектирования. Паттерны проектирования» зарекомендовала себя как библия объектно-ориентированного проектирования. Каждый представленный в ней паттерн – это отдельный завет, которого необходимо придерживаться и ему следовать. Этой книге не может быть замены.

Книга «Приемы объектно-ориентированного проектирования. Паттерны проектирования» - это научный труд, который заложил основы и сформировал стандарты объектно-ориентированного проектирования, которым все стараются следовать.

Для успешной реализации программных решений, одного стандарта проектирования может оказаться мало. Не менее важным является выбор программной инфраструктуры. Компания Microsoft предоставила миру в свободное использование инфраструктуру .NET.

Что можно сказать об инфраструктуре Microsoft .Net? Её формула проста: .NET = CLR + FCL. И сразу же хочется перефразировать крылатое высказывание неизвестного древнегреческого философа-геометра:

«Высшее проявление духа – это разум. Высшее проявление разума – это .NET. Клетки .NET – FCL. Она так же неисчерпаема, как и Вселенная. CLR – душа .NET. Познайте CLR, и вы не только познаете душу .NET, но и возвысите душу свою».

Многие паттерны были использованы для реализации типов, входящих в FCL, а некоторые из них даже нашли выражение в языковых конструкциях и в идеях работы механизмов CLR.

В своей книге «CLR via C#», Джеффри Рихтер, богато и технически ярко описал устройство и особенности работы CLR. Эта книга является глубоким и всеобъемлющим источником знаний по устройству CLR и использованию языка C#, и равных ей в этом нет.

Реализации паттернов с использованием языка C# имеют свои иногда специфические особенности, поэтому рекомендуется обращаться за разъяснениями использования конструкций языка, описания типов FCL и самих механизмов CLR именно к книге Джеффри Рихтера - «CLR via C#».

Цели, которые перед собой ставили авторы книги «Design Patterns via C#» при ее написании: Разъяснить и в хорошем смысле более «просторечиво» представить определения и положения,

представленные в книге «Приемы объектно-ориентированного проектирования. Паттерны проектирования».

Реализовать примеры на языке C# из книги «Приемы объектно-ориентированного проектирования. Паттерны проектирования», которые в книге представлены в форме общих описаний (примеров-идей) или в виде отрывков-кода на языке C++, стараясь при этом максимально сохранить первоначально заложенный смысл-идею.

Представить модели диаграммами с использованием языка UML и выразить их средствами моделирования Microsoft Visual Studio.

Показать варианты реализации паттернов с использованием особенностей конструкций языка C#, типов FCL и механизмов CLR.

Книгу «Design Patterns via C#» рекомендуется воспринимать как приложение к книге «Приемы объектно-ориентированного проектирования. Паттерны проектирования» и, читать параллельно, обращаясь к ней за разъяснениями и описанием реализации примеров на языке C#.

Александр Шевчук Дмитрий Охрименко Андрей Касьянов

16

Об авторах

Александр Шевчук

Тренер-консультант в области построения архитектуры информационных систем, бизнес-анализа и управления IT проектами. Сертифицированный специалист

Microsoft (MCTS, MCPD, MCT).

Дмитрий Охрименко

Тренер-консультант в области построения архитектуры распределенных и вебориентированных приложений. Сертифицированный специалист Microsoft (MCTS, MCPD, MCT).

Андрей Касьянов

Инженер – программист.

https://www.linkedin.com/pub/kasyanov-andrew/78/299/549/en

17

Благодарности

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

Назар Рудь, Андрей Рябец, Олег Кулыгин, Давид Бояров, Алексей Назарук, Владислав Поколенко, Андрей Василишин, Илья Попов, Владимир Божек, Юлия Лищук, Тимур Сайфулин, Александр Головатый, Николай Лукьяненко, Виктор Левитский, Дмитрий Живняк, Андрей Павлюк, Алексей Анпилогов, Алексей Яблоков, Богдан Донченко, Александр Самойленко, Владислав Овинников, Полина Смирнова, Дмитрий Черниговский.

Особой благодарности заслуживают студенты – слушатели наших курсов, чьи вопросы, замечания и обсуждения примеров неизменно помогают улучшить учебный материал.

18

Принятые в книге обозначения

Для облегчения работы с книгой приняты следующие соглашения:

Коды программ обозначены в книге шрифтом (Consolas).

Основные стереотипы языка C# представлены следующими цветами:

class MyClass { } struct MyStruct { } enum MyEnum { }

interface IInterface { } delegate void MyDelegate();

Смысловые акценты, определения, термины, встретившиеся впервые, и подписи к рисункам,

обозначены курсивом, например, Рисунок 2. Фрагмент танца составленный из двух независимых элементов (шаблонов), closure, контейнер и т.д.

Имена основных участников паттернов выделены полужирным начертанием: Абстракция,

Посредник, Коллега, Конкретный продукт и т.д.

Имена классов и методов, встречающиеся в тексте книги вне листингов, выделены цветом и шрифтом, как элементы кода программ. Например, имена классов выглядят следующим образом: Builder,

MazeGame, ConcreteProduct и т.п. Имена методов: MemberwiseClone, Instance, CreateManipulator и т.п. Имена интерфейсов: IGraphic, IEnumerable, IEnumerator.

Комментарии к листингам приведены в привычном для Visual Studio v12 стиле: шрифт Consolas,

текст зеленого цвета (//комментарий листинга).

Ссылки на статьи MSDN и других вспомогательных ресурсов приведены шрифтом Calibri, синего цвета с использованием подчеркивания, например, http://MSDN.com.

Ключевые преимущества, недостатки и варианты реализаций паттернов выделены маркерами с использованием полужирного начертания:

Вариант реализации, ключевое преимущество или недостаток паттерна

Технические рекомендации

Для просмотра диаграмм классов, представленных с использованием языка UML, требуется воспользоваться Visual Studio v12 и выше в редакции Ultimate Edition.

Дополнительные ресурсы

Более детально познакомиться с особенностями языка C# и технологий .NET можно на следующих ресурсах:

http://MSDN.com

http://ITVDN.com

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]