Модели OOP с примери и описание

Реших да напиша накратко за общи модели в живота ни, и така.

Registry (регистър, записи в дневника)

Сингълтън регистър (Registry самотен) - да не се бърка с Сингълтън по вписванията (единичен регистър)

"Регистър" често е "самотник", но това не винаги трябва да бъде по този начин. Например, можем да започнем в сметките на няколко списания, един от работниците и служителите "А" до "М", а другият от "H" на "Z". Всеки регистър ще бъде "Регистрация", но не и "самотник", защото трупи имат 2.

Multiton (басейн на "сингли") или с други думи по вписванията Сингълтън (единичен регистър) - да не се бърка с Сингълтън регистър (Registry самотен)

Често "регистър" се използва само за съхранение "единствен". Но тъй като модел "регистър" не е "генеративен модел" и би искал да се разгледа "регистър" във връзка с "самотник". Ето защо е измислил модел Multiton. който по същество е "регистър", съдържаща няколко "сингли", всяка от които има своя собствена "име", чрез която можете да получите достъп до него.

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

Обект басейн (басейн съоръжения)

В действителност, този модел е "регистър", който съхранява предмети само, без условия, масиви и т.н. типове данни.

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

Бих искал да се отбележи, че методът на фабрика също е модел, той се нарича метод Фабрика (завод метод).

Така че, ние вече сме осъзнали, че "Фабрика" - автомат, тя вече има всичко готово, а ти просто да кажа това, което ви трябва. "Builder" - растение, което произвежда тези напитки съдържа всички сложни операции и да се съберат сложни обекти от опростена (опаковки, етикети, вода, ароматизатори и т.н.), в зависимост от искането.

Припомняйки "фабрика", се използва и за създаване на обекти, но с малко по-различен подход. Представете си, че в бара, да пиете бира, и той ви е, завърших, с когото говорите бармана - да ме направи още един като него. Барманът, от своя страна, поглежда една бира да пиете и прави копие, тъй като те помолих. В PHP вече прилага такъв модел, той се нарича клонинг.

Късна инициализация (инициализация забавено)

Зависимост инжектиране (Зависимост инжектиране)

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

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

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

Зависимост инверсия понякога се бърка с Зависимост инжекция, но не бива да се бърка, защото Зависимост инверсия е принцип, а не модел.

Locator Service (услуга локатор)

Ако говорим за реалния живот, това е може би един добър пример за услуга Locator-или може би PHP-разширение на ЗНП, като Днес ние работим с базата данни MySQL, а утре можем да работим с PostgreSQL. Както знаете, нашият клас не е важно, на които на базата данни, за да изпратите данните си, важно е, че той може да го направи.

За разлика от зависимостта инжекция от локатор услуга

Ако не сте забелязали, аз искам да обясня. Зависимост инжекция в резултат на възвръщаемост не е услуга, (който може да бъде нещо, някъде да достави) и се използват данните на обекта.