Singleton Pattern ให้ Strategy จำกัดจำนวน Instances ของ Class ให้เป็นหนึ่งเดียว ดังนั้น Object เดียวกันจะถูก Share โดยส่วนต่างๆ ของ Code เสมอ Singleton ถือเป็น Solution ที่ Elegant กว่า Global Variable เพราะ Actual Data ถูกซ่อนอยู่เบื้องหลัง Singleton Class Interface
โค้ดต่อไปนี้เป็นหนึ่งในหลายวิธีที่แตกต่างกันที่สามารถสร้าง Singleton Class ได้
class Singleton(object):
_instance = None
def __new__(class_, *args, **kwargs):
if not isinstance(class_._instance, class_):
class_._instance = object.__new__(class_, *args, **kwargs)
return class_._instance
class MyClass(Singleton, BaseClass):
pass
It's a true class