簡単な紹介
シングルトン(Singletonパターン)は、共通のデザインパターンであり、このモードの主な目的は、特定のクラスのインスタンスが1つだけ存在することを確認することです。あなたは、システム全体で、クラスのインスタンスを1つだけ表示されることができますしたい場合は、シングルトンオブジェクトが便利になることができます。
繰り返し無駄と呼ばれるクラスの静的な値は、実施の形態では、単一の上に実装することができる場合
実現
原則
例:
class Foo(object):
instance = None
def __init__(self):
pass
@classmethod
def get_instance(cls, *args, **kwargs):
if Foo.instance:
return Foo.instance
else:
Foo.instance = Foo(*args, **kwargs)
return Foo.instance
obj1 = Foo.get_instance()
obj2 = Foo.get_instance()
print(obj1, obj2)
注:これには、次の方法を使用して、オブジェクトが作成される方法の変更になります
クラスの実装により、
例:
class Foo(object):
instance = None
def __init__(self):
pass
def __new__(cls, *args, **kwargs):
if Foo.instance:
return Foo.instance
else:
Foo.instance = object.__new__(cls, *args, **kwargs)
return Foo.instance
obj1 = Foo()
obj2 = Foo()
print(obj1, obj2)
:生成されたクラスの呼び出しシーケンスであるため、新たな新 > - 初期化 - > コール
最初のメソッドが呼び出されるように__new__は、