ПредишенСледващото

IMHO лош пример. В реални портали - е един куп връзки с различни бази данни. И като цяло, че Сингълтън наистина същите като статичен - Единственото лошо, ако се окаже изведнъж започва измамник започва статика клас конкретни примери, и натиснете, за да не-статиката имоти / методи: но това може да стане само beginnera. И ако до няколко статични методи се появи в Singleton ръцете на един и същ beginnera - нищо страшно не е така. - Александър Гончаров 25 август '16 в 17:01

Singleton - един от най-лесните, но в същото време изключително важни дизайн модели. За това, което вече е отговорено. Основната изпълнението ви показах, но всеки от кифли може да я завийте. Така, например, могат да бъдат създадени в отделен C ++ клас шаблон от Singleton шаблон. и след това трябва да правим от всеки съществуващ клас Сингълтън.

Отговорено 22 '12 март в 10:27

Фактът, че Сингълтън ви позволява да създадете само едно копие на вашия.

Съответно, всички класове, които използват обекта Сингълтън се използва един и същ обект. С едни и същи данни.

Да вземем за пример компаньони отговор @knes за връзка с базата данни. Ако конструктора на свързване на база данни, записана в Singleton, всички класове, използвайки Сингълтън ПБ чрез използване една и съща връзка.

Въпреки това, ако MyCLASS - Сингълтън:

Всичко това - само най-ясно по мое мнение илюстрация на механизма. Предимства и недостатъци на Сингълтън - друга история.

Отговорено 22 '12 март в 07:56

> Друг пример: за добавяне на произволна сек променлива. След това добавете към него geter и seter. Толкова е просто. Въпросът е, че ние можем да определя стойността на тази променлива в един клас, и да получите до другия, без да Сингълтън обект между класове. Аз и без Сингълтън тя работи. - EXEC 22 март '12 в 08:01

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

Искате да използвате статичен клас за работа с бази данни - началник вътре лично статична променлива DB_handler. Необходимо е да се работи с няколко съединения (няколко DB) - Head все още е необходимо. Можете дори да се изгради нещо статично масив. Защо не? Вие ще трябва да избягвате прекалено - пренапише класа. Т.е. копия на статични класове не се различават изобщо (в производството на оператор нов), а най-малко един не-статична променлива не се появява в тях. Вярно е, че и след това те ще се различават само това не е статична променлива. Въпреки това, в същото време, контрол на тази променлива ще са произведени само от класа.

Това е за него и имаше един въпрос - "Защо?". Отговорът е прост - да, не е необходимо :)

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

Така например, аз също не виждам разликата между сложна и проста подувам Singleton Singleton :: doAction (). Като цяло, статични упражнения (статични променливи) chrezvyychano удобни от факта, че те осигуряват един вид "глобални" променливи за всеки обхват. И водачът на базата данни ярък пример.

Отговорено 22 '12 март в 14:52

Свързани статии

Подкрепете проекта - споделете линка, благодаря!