毎日1題(単例モード)


Singleton Patternは、クラスが1つのインスタンスしか存在しないことを保証することを主な目的とする一般的なソフトウェア設計モデルです.システム全体でクラスに1つのインスタンスしか表示されないことを望む場合は、単一のオブジェクトを使用できます.
モジュールの使用
Pythonのモジュールは天然の単例モードである.モジュールは1回目のインポート時に.pycファイルを生成し、2回目のインポート時に.pycファイルを直接ロードし、モジュールコードを再実行しないからである.したがって,関連する関数とデータを1つのモジュールに定義するだけで,単一のオブジェクトを得ることができる.本当に単一のクラスがほしい場合は、次のことを考えてみましょう.
mysingleton.py
class Singleton(object):
    def foo(self):
        pass
singleton = Singleton()

上記のコードをファイルmysingleton.pyに保存し、使用する場合は、このファイルのオブジェクトを他のファイルに直接インポートします.このオブジェクトは、単一のモードのオブジェクトです.
from a import singleton