Учебников и лекций как таковых нет. Есть пара хороших книг — Гамма, Бином, которые нам рекомендовал преподаватель и не более того. Все, что я планирую писать — это мое собственное понимание проблем и пути их решений на основании шаблонов. К тому-же практические примеры — выдумка самого студента. Я постараюсь быть оригинальным :)
> Приспособленец (Flyweight)
ближе по смыслу, наверно, «легковесный».
> Посредник (Mediator)
Proxy скорее посредник. Медиатор скорее «распределитель»
Придрался к переводу, потому что иногда не понятно, что человек имеет ввиду.
Как то раз услышал от студента про «стража включения». Думал, что то новое, а это просто конструкция в Си:
#ifndef _HEADER_
#define _HEADER_
…
#endif
ИМХО, некотоыре вещи лучше не переводить, что бы не создавать барьеров в общении.
Proxy, если я не ошибаюсь, называют ещё Ambassador (то есть «посол»), поэтому его перевод как «заместитель» мне очень даже нравится. Равно как и «страж включения» вместо «include guard». И вообще русский язык богаче английского. Лучше все вещи переводить, чтобы не создавать барьеров в общении (между владеющими английским и не владеющими).
И, кстати, это Вам минус, если Вы не смогли понять, что имеется в виду под «стражами включения».
P.S. Единственное, что вызывает у меня некую неуверенность, это Flyweight.
А вы народ не путайте, названия классические, из «банды четырех». Proxy это заместитель, потому что он вызывается _вместо_ того объекта, который он замещает. Mediator же обычно посредник между группой объектов, которым он требуется для общения, поэтому путаница с Proxy здесь будет очень некстати.
Пускай будет, полезно. Я, кстати, сейчас преподаю курс в ЯрГУ по паттернам, может интересными примерами поделитесь, будет и мне что рассказать :)
По поводу литературы — есть классика «Банда четырёх» с их книжкой про паттерны.
Так же мне очень нравится — Design Patterns от www.dofactory.com, ориентированно на .NET
А кто ведёт курс, если не секрет? Дело в том, что сам веду аналогичный спецкурс (в другом вузе), поэтому очень интересно было бы поделиться опытом, т.к. программу своего курса полностью изобретал сам (по большей части — толкование GoF'а).
Курс ведет профессор с нашей кафедры Прикладной математики. Я более чем уверен, что она тоже самостоятельно составляла программу. Причем скорее всего, по той же самой книге. Если нужна более конкретная информация о преподавателе, пиши в личку.
На мой взгляд проще открыть хорошую книжку и почитать, например, «Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес Приемы объектно-ориентированного проектирования. Паттерны проектирования», «Мартин Фаулер Архитектура корпоративных программных приложений» и т.д.
Спасибо! Продолжение обязательно будет, как только я разгребу дела на работе (уже очень скоро). Материалу накопилось достаточно, осталось только его оформить. Ждите :)
Паттерны проектирования