접근 제어와 싱글톤

조현우·2022년 6월 28일
0

접근 제어

외부에서 특정 코드에 접근하지 못하게 만들기 위해 사용하는 문법이다.
private 키워드를 사용해 속성과 메서드에 적용가능하다.

접근 제어를 사용했을때의 장점

  • 코드의 영역을 분리시켜 관리가 수월해진다
  • 컴파일 시간이 줄어든다
class SomeMac {
	private var model = "맥"
    
    func modelChange(model: String) {
    	self.model = model
    }
}

위와 같이 private 키워드를 사용할 경우 model 변수에 직접 접근할 수 있는 방법이 사라진다.

var class = SomeMac()

// 접근 불가능
class.model = "맥북"		
// modelChange 함수를 통해 model 변수에접근 가능
class.modelChange("맥북")	

싱글톤

싱글톤(Singleton) 패턴

싱글톤 패턴을 사용해야 할 때

  • 유일하게 한개만 존재하는 객체가 필요한 경우
    -> 유일한 데이터/관리 객체가 필요한 경우
  • 한번 생성된 이후에는 앱이 종료될때까지, 유일한 객체로 메모리에 상주해야 하는 경우
class Singleton {
	// 타입 프로퍼티(전역변수)로 사용
    // 자신의 객체를 생성해서 전역변수에 할당
	static let shared = Singleton()	
    var userInfoId = 12345
    
    private init() { }
}

타입 프로퍼티를 사용하면 인스턴스를 생성하지 않을때 전역에서 해당 프로퍼티의 값에 접근 가능하다. 그러나 새로운 객체 생성을 하게 되면 고유 프로퍼티가 되지 못한다. 이 때 사용하는 방법이

private init() { }

을 사용하는 것이다. private 접근 제한자를 사용하게 되면 생성자의 외부접근이 불가능해지기 때문에, 인스턴스 생성이 불가능하게 된다.

profile
현우

0개의 댓글