싱글톤 패턴

프로세스 실행 중에 오직 하나의 오브젝트만 생성되도록 강제하는 디자인 패턴,

class Singleton {
		static var instance: Singlton
		
		init(instance:Singlton) {
				if !Singlton.instance {
						Singleton.instance = this
				}
				return Singleton.instance
		}
		
}

let s1 = Singlton()
let s2 = Singlton()

if (s1 === s2){
	print("thry are same , singlton")
}

아무리 다른 오브젝트를 만들어도 결국 같은 오브젝트를 가리킴

사용되는 경우 :

  1. 해당 오브젝트가 많은 리소스를 차지 할 때.
  2. 해당 오브젝트가 외부 네트워크와 연결 될 때 연결 네트워크가 단 한개만 있어야 할 때.

프로토 타입 패턴

중간 단계 오브젝트를 프로토 타입으로 만들어놓고

이를 딥카피를 통해 오브젝트를 만들어가는 디자인 패턴