Можно снять флажок с опцией сборки для указанных проектов в Вашем Конфигурация решения :
(источник: microsoft.com )
Вы банка может создать Ваши собственные конфигурации решения для создания определенных конфигураций проекта...
(источник: microsoft.com )
Настоящая причина того, что borg является различие сводится к созданию подклассов.
Если вы подклассифицируете borg, объекты подкласса имеют то же состояние, что и объекты их родительских классов, если вы явно не переопределите общее состояние в этом подклассе. Каждый подкласс одноэлементного шаблона имеет собственное состояние и поэтому будет создавать разные объекты.
Также в одноэлементном шаблоне объекты фактически одинаковы, а не только состояние (хотя состояние - единственное, что действительно имеет значение).
Это не является. Что обычно не рекомендуется, так это такой шаблон в python:
class Singleton(object):
_instance = None
def __init__(self, ...):
...
@classmethod
def instance(cls):
if cls._instance is None:
cls._instance = cls(...)
return cls._instance
, где вы используете метод класса для получения экземпляра вместо конструктора. Метапрограммирование Python позволяет использовать гораздо лучшие методы, например, тот, что в Википедии :
class Singleton(type):
def __init__(cls, name, bases, dict):
super(Singleton, cls).__init__(name, bases, dict)
cls.instance = None
def __call__(cls, *args, **kw):
if cls.instance is None:
cls.instance = super(Singleton, cls).__call__(*args, **kw)
return cls.instance
class MyClass(object):
__metaclass__ = Singleton
print MyClass()
print MyClass()
Класс в основном описывает, как вы можете получить доступ (чтение / запись) к внутреннему состоянию вашего объект.
В шаблоне singleton у вас может быть только один класс, то есть все ваши объекты будут давать вам одинаковые точки доступа к общему состоянию. Это означает, что если вам нужно предоставить расширенный API, вам нужно будет написать оболочку, обернутую вокруг singleton
. В шаблоне borg вы можете расширить базовый класс «borg» и тем самым более удобно расширить API. на ваш вкус.
Это лучше только в тех немногих случаях, когда у вас действительно есть разница. Например, когда вы создаете подкласс. Паттерн Борг чрезвычайно необычен, мне он ни разу не понадобился по-настоящему за десять лет программирования на Python.