Design Patterns за начинаещи

Design Patterns за начинаещи

Ако някога сте се чудили какви са моделите на дизайна, вие сте добре дошли. В тази статия, аз ще ви кажа какво е, защо те се нуждаят, как да ги използвате, и да даде примери за най-често срещаните шаблоните в PHP.







Какви са моделите на дизайна?

шаблони за дизайн - са доказани и готов за употреба решения често възникват в ежедневието програмни задачи. Това не е клас или библиотека, която може да бъде свързана с проекта, това е нещо повече. Шаблон дизайн е подходящ за задачата, приложени във всеки отделен случай. В допълнение, той не зависи от езика за програмиране. Един добър шаблон се осъществява лесно в повечето, ако не и на всички езици, в зависимост от изразните средства на езика. Все пак трябва да се забравя, че такъв модел се прилага неправилно или неподходящо задача, може да доведе до много проблеми. Въпреки това, на правилното прилагане на шаблона ще ви помогне да се реши проблема бързо и лесно.

Има три вида шаблони:

Структурни шаблони определят връзката между класове и обекти, което им позволява да работят заедно.

Генериране на шаблони да осигурят механизми за инициализация, което ви позволява да създавате обекти удобен начин.

Поведенчески модели се използват за опростяване на взаимодействието между субекти.

Защо Design Patterns?

шарка, по своята същност, е съзнателно решение на даден проблем. Ако се сблъскате с един добре известен проблем, защо не се използва готов разтвор, доказан опит?

Да си представим, че трябва да се съчетаят двата класа, които изпълняват различни операции в зависимост от ситуацията. Тези класове са силно използвани от съществуващата система, която не позволява да се премахне един от тях и да добавяте функционалност във втория. Освен това, промяната в кода ще изисква продължително тестване го, защото такъв рефакториране води до неизбежни грешки. Вместо това, вие може да реализира от "Стратегически" шаблони и "адаптер" и да ги използвате, за да реши проблема.

Обикновено, не е тя? Нека погледнем по-отблизо в "Стратегията" модел.

Шаблон "Стратегия"

Design Patterns за начинаещи

Стратегия - модел на поведение, който ви позволява да изберете поведението на програмата по време на изпълнението, в зависимост от контекста, може да се капсулира няколко алгоритми в различни класове.

В примера по-горе, при избора на стратегия се базира на стойността на контекста на променливата $. който е по време на създаването на обект. Ако стойността е "context_for_class_one". програмата ще използва class_one клас. И обратното.

Добре, но къде може да се използва?

Design Patterns за начинаещи






Обикновено, моделът "Стратегия" включва капсулиране на алгоритми в класа, но в този случай също. Не забравяйте, че не сте длъжни да следват модел дума по дума. Всички варианти са допустими, ако се реши проблема и да отговаря на концепцията.

Шаблон "адаптер"

Design Patterns за начинаещи

Адаптер - структурната шаблон, който ви позволява да използвате един клас, който реализира необходимите функции, но с грешен интерфейс.

Той също така ви позволява да промените някои входове за съвместимост с интерфейс на вътрешния клас.

Как да го използвам?

Design Patterns за начинаещи

Другото наименование на адаптера - "Wrap". Той "увива" около нов интерфейс класа да го използвате. Класически пример: трябва да се създаде модел на клас предмет, с класове на обекти в базата данни. Вместо да се достигне до плоските класове директно и се обадете на своите методи в даден момент, можете да капсулират разговорите към тези методи в един метод в адаптера. Това не само ще повторна употреба набор от операции, но също така ви спестява от постоянното пренаписване много код, ако трябва да се извърши на същия набор от действия на други места.

Сравнете два примера.

без адаптер

Сега ние можем да използваме класа на сметката всеки път, и, освен това, ние можем да добавите допълнителни функции.

Шаблон "метод фабрика"

Design Patterns за начинаещи

Фабрика - генериране на модел, който е един клас с метод за създаване на различни обекти.

Основната цел на този шаблон - капсулиране на процеса на създаване на различни класове в една и съща функция, която, в зависимост от контекста предава го връща на желания обект.

Как да го използвам?

Design Patterns за начинаещи

Заводът обикновено се използва за създаване на различни изпълнения на базовия клас. Да кажем, че имате клас на бутона - бутон - и три опции - ImageButton. InputButton и FlashButton. С помощта на фабриката можете да създадете различни бутони в зависимост от ситуацията.

На първо място, ние създаваме три класа:

На изхода е трябвало да бъде на всички видове HTML бутони. Така че ние имаме възможност да се посочи какъв тип бутон искаме да получим, и повторно използване на код.

Шаблон "Декоратор"

Design Patterns за начинаещи

Декоратор - структурен шаблон, който ви позволява да добавите нов обект поведение по време на работа, в зависимост от ситуацията.

Целта - в поведението на разширяване на даден обект, без да се променя поведението на база клас. Това ви позволява да използвате няколко декоратори в същото време. Този шаблон - алтернатива на наследяване. За разлика от наследството декоратор добавя поведение по време на изпълнение.

За изпълнение на декоратор имаме нужда от:

  1. Наследи клас декоратор от основата.
  2. Добавете поле по отношение на базовия клас в декоратор.
  3. Минете препратка към украсен обект в декоратор дизайнер.
  4. Пренасочване метод за декоратор на украсен обект.
  5. Замяна методи декоратор, чието поведение трябва да се промени.

Как да го използвам?

Design Patterns за начинаещи

Първо, определи кои "комплекти" имаме нужда от:

Сега можем да си пиша декоратори: