Шаблон или паттерное проектирование это общее заверенное временем решение какой-то обыденной проблемы, возникающей в контексте разработки программного обеспечения. Подобных проблем может возникнуть достаточное количество и в этот момент вы должны быть во все оружии, а не с молотком и отверткой, чтобы изобрести еще один велосипед. Статья посвящается основным патторным проектированием о которых могут спросить на собеседовании, которые помогут в личных проектах.

1) Singleton

Самый простой и популярный шаблон - Singleton. О нем спрашивают везде и всегда, а смысл его достаточно прост: он позволяет создать только один экземпляр некоторого класса, предоставляющий глобальную точку доступа к этому экземпляру.

2) Command

Простыми словами этот паттерн оборачивает вызов функции в некую обертку и позволяет работать с ней как с объектом. Это очень похоже на замыкание, колбеки, указатели функции, функции первого порядка. Книга банда-4 Виктора Пронина говорит, что command - это объектно-ориентированное замена колбеков. Знание этого шаблона и умение его применять будет большим плюсом для вас.

3) Flyweight

Паттерн создан для улучшения производительности. Например, когда есть большое количество похожих объектов, и нужно сделать так, чтобы создание каждого из них было как-то легче и проще. Происходит оптимизация работы с памятью путем предотвращения создания экземпляров элементов, имеющих общую сущность. Это один вообще из самых полезных паттернов и как только вы на него наткнетесь, то постарайтесь разобраться с ним.

4) Observer

Observer - один из самых широко используемых шаблонов. Этот паттерн развился настолько, что java даже добавила его себе в стандартную библиотеку. Его назначение это определять зависимость "один-ко-многим" между объектами так, что при изменении состояния одного объекта все зависящие от него объекты уведомляются и обновляются автоматически. Шаблон позволяет анонсировать любые изменения в его состоянии без какого-либо волнения о том, кто именно получит информацию,скажем пример с тем же самым аяксом, то есть аякс работает по принципу обсервера.

5) Prototype

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

6) State

Основная фича стратегии в том, чтобы делать какой-то определенный таск разными способами. Паттерн state реализует идею того, чтобы делать определенные действия отталкиваясь от состояния объекта. Объект меняет свое поведение в зависимости от своего состояния. Например, у нас есть джойстик, жмем на кнопку up, то мы подпрыгнем, нажмем down - спустимся.

Паттерны - это такие магические артефакты, способы применения которых вы обязаны знать потому что это часть программирования. Их изобрели, протестировали, они прошли через время и с помощью них можно общаться с другими разработчиками, чтобы понять суть какого-то куска кода.


 Похожие публикации
2017-06-06 • Просмотров [ 311 ]