29 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			29 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								title: Structural patterns
							 | 
						|||
| 
								 | 
							
								localeTitle: Структурные структуры
							 | 
						|||
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								## Структурные структуры
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Структурные шаблоны проектирования - это шаблоны проектирования, которые облегчают дизайн, определяя простой способ реализации отношений между сущностями и отвечают за построение простых и эффективных иерархий классов между различными классами.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Примеры структурных шаблонов включают:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								1.  **Шаблон адаптера** : «адаптирует» один интерфейс для класса в тот, который ожидает клиент.
							 | 
						|||
| 
								 | 
							
								2.  **Конвейер** : используйте несколько адаптеров для целей отладки.
							 | 
						|||
| 
								 | 
							
								3.  **Retrofit Interface Pattern** : адаптер, используемый в качестве нового интерфейса для нескольких классов одновременно.
							 | 
						|||
| 
								 | 
							
								4.  **Агрегатный шаблон** : версия составного шаблона с методами агрегирования детей.
							 | 
						|||
| 
								 | 
							
								5.  **Схема моста** : отделить абстракцию от ее реализации, чтобы они могли варьироваться независимо.
							 | 
						|||
| 
								 | 
							
								6.  **Надгробный камень** : промежуточный объект «lookup» содержит реальное местоположение объекта.
							 | 
						|||
| 
								 | 
							
								7.  **Композитный шаблон** : древовидная структура объектов, где каждый объект имеет один и тот же интерфейс.
							 | 
						|||
| 
								 | 
							
								8.  **Рисунок декоратора** : добавьте дополнительные функциональные возможности для класса во время выполнения, когда подклассы приведут к экспоненциальному росту новых классов.
							 | 
						|||
| 
								 | 
							
								9.  **Шаблон расширяемости** : aka Framework - скрыть сложный код за простым интерфейсом.
							 | 
						|||
| 
								 | 
							
								10.  **Фасад** : создать упрощенный интерфейс существующего интерфейса для облегчения использования общих задач.
							 | 
						|||
| 
								 | 
							
								11.  **Шаблон Flyweight** : большое количество объектов имеет общий объект свойств для экономии места.
							 | 
						|||
| 
								 | 
							
								12.  **Шаблон маркера** : пустой интерфейс для связывания метаданных с классом.
							 | 
						|||
| 
								 | 
							
								13.  **Трубы и фильтры** : цепочка процессов, где выход каждого процесса является входом следующего.
							 | 
						|||
| 
								 | 
							
								14.  **Непрозрачный указатель** : указатель на необъявленный или закрытый тип, чтобы скрыть детали реализации.
							 | 
						|||
| 
								 | 
							
								15.  **Прокси-шаблон** - класс, функционирующий как интерфейс к другому.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### источники
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								[https://en.wikipedia.org/wiki/Structural\_pattern](https://en.wikipedia.org/wiki/Structural_pattern)
							 |