PythonのSingletonパターン(シングルトン)

簡単な紹介

シングルトン(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__は、

おすすめ

転載: www.cnblogs.com/dbf-/p/10991960.html