객체의 인스턴스가 오직 1개만 생성
class Singleton(object):
def __new__(cls, *args, **kwargs):
if not hasattr(cls, "_intance"):
cls._intance = super().__new__(cls)
return cls._instance
def __init__(self, data):
cls = type(self)
if not hasattr(cls, "_init"):
self.data = data
cls._init = True
s1 = Singleton()
s2 = Singleton()
print(s1)
print(s2)
장점:
메모리
인스턴스가 한개만 존재하는 것을 보증
단점:
테스트 어려움
의존성 높아짐