Породжуючі патерни – Creational patterns
ADO в Delphi AJAX Android C++ CakePHP CMS COM CSS Delphi Flash Flex HTML Internet Java JavaScript MySQL PHP RIA SCORM Silverlight SQL UML XML Бази даних Веб-розробка Генетичні алгоритми ГІС Гітара Дизайн Економіка Інтелектуальні СДН Колір Масаж Математика Медицина Музика Нечітка логіка ООП Патерни Подання знань Розкрутка сайту, SEO САПР Сесії в PHP Системне програмування Системний аналіз Тестологія Тестування ПЗ Фреймворки Штучний інтелект
|
Породжуючі патерни – Creational patternsКлючові поняття: Породжуючі патерни, Абстрактна Фабрика, Будівельник, Фабричний Метод , Прототип, Одинак.
Так уже прийнято, що усі дизайн патерни поділені на три великі групи, а саме: породжуючі, структурні та поведінкові. Звичайно, що можна було б опустити вступ до кожної із груп, але, насправді, поділ на групи має досить велике значення. Не даремно хлопці із «банди чотирьох» вибрали саме 23 патерни а не більше і не менше, і недаремно вони поділили їх на ці групи. Це ж була основна мета їхньої роботи –структуризувати та формалізувати вже існуючі дизайн патерни.
Інколи ви працюєте із певним набором об’єктів через групу інтерфейсів. А тоді хочете створювати об’єкти тільки із іншого набору, щоб пристосувати ваш код до інших умов. Звичайно група інтерфейсів, через які ви оперуєте, залишається та ж сама. Спростити створення відповідного набору допоможе Абстрактна Фабрика.
А щоб зручно вибрати одну реалізацію та інстанціювати її, відштовхуючись від простої умови, можна використати Фабричний Метод. Вибагливе множення об’єктів не єдине завдання, яке вам слід буде виконувати у роботі, вам часто буде потрібно робити все точно навпаки – мати один-єдиний екземпляр об’єкта і ні за яких обставин не доступатися до йому подібних. Функціональність єдиного екземпляра забезпечуються Синглтоном.
По матеріалам книги Андрія Будая "Дизайн патерни – просто, як двері". Матеріал розміщується за домовленістю з автором.
1. Абстрактна Фабрика — Abstract factoryУявімо, що ви прийшли в іграшковий магазин (відіграючи роль діда Мороза ) і хочете накупити іграшок дітям (і не обов’язково своїм). Мартуся любить плюшеві іграшки, вона часто із ними лягає у ліжко спати. А Дмитрик страшний розбишака, ламає все на світі, рве м’які іграшки і, зазвичай, віддає перевагу гратися із твердими, дерев’яними іграшками. Двоє дітей хочуть ведмедика і котика і ще купу інших тваринок. 2. Будівельник — BuilderУявіть, що ви володієте магазином (гаражем) з продажу персональних комп’ютерів, в якому можна вибирати конфігурацію прямо біля каси (як піцу в піцерії). Вам слід створити систему, що дозволить легко будувати будь-яку конфігурацію ноутбука для будь-якого покупця. Причому стандартні конфігурації мають складатися «по накату». 3. Фабричний Метод — Factory methodУявіть, що ваша аплікація є дуже складною, і так склалося, що ви використовуєте два логінг провайдери: один Log4Net та інший Enterprise.Logging. Ваш колега додумався помістити вибір провайдера прямо у конфігураційний файл. Так як ви всю логіку логування абстрагуєте за інтерфейсом ILogger, то вам не хотілося б, щоб при потребі логгера вам приходилося по умові перевіряти що записано у конфізі і тоді створювати необхідний екземпляр. 4. Прототип — PrototypeПрототип дозволяє нам створювати копії об'єктів, що уже визначені на стадії дизайну (наприклад, список можливих типів зустрічей) або ж визначаються під час виконання програми («п’ятнична вечірка»), таким чином відпадає необхідність заповняти всі елементи об'єкту від «А до Я». Вже створені або визначені екземпляри об'єкту називаються прототипічними екземплярами (prototypical instances). 5. Одинак — SingletonЗверніть увагу на додаткові посиланняЯкщо вас цікавить...Головний розділзагрузка...
|
Сторінки, близькі за змістом Шаблони проектування програмного забезпечення (англ. software design patterns) — ефективні способи вирішення задач проектування програмного забезпечення. Шаблон не є закінченим зразком, який можна безпосередньо транслювати в програмний код. Об'єктно-орієнтований шаблон найчастіше є зразком вирішення проблеми і відображає відношення між класами та об'єктами, без вказівки на те, як буде зрештою реалізоване це відношення. |
Copyright © 2008—2024 Портал Знань.
При використанні матеріалів посилання, для інтернет-ресурсів — гіперпосилання, на Znannya.org обов'язкове.
Зв'язок
|
НТУУ "КПІ" Інженерія програмного забезпечення КПІ Лабораторія СЕТ |
|