Skip to content

Latest commit

 

History

History

10.AccessControl1

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

접근제어1(Access Control1)

💡 접근 제어를 사용하는 이유는 은닉화를 하기 위해 코드 내부의 세부 구현 내용을 숨기기 위해서 사용한다. 또한 코드 영역을 분리시켜서 효율적으로 관리가 가능하고 컴파일 시간이 줄어든다.

class SomeCalss {
	private var name = "이름"

	func nameChange(name: String) {
		self.name = name
	}
}

var s = SomeCalss
s.name = "홍길동" // 불가
s.namechange(name: "홍길동") // 가능

private 키워드를 사용하면 은닉화로 인해 name에 바로 접근할 수 없다. 대신, 메서드를 이용해서 접근할 수 있다.


  • 싱글톤(Singleton) 패턴 → 유일하게 한개만 존재하는 객체가 필요한 경우에 쓴다.
class Singleton {
	static let sharded = Singleton() // 나 자신의 객체를 생성해서 전역변수에 할당함
	var userInfoId = 12345
	private init() {} // 객체를 더이상 찍어낼 수 없게 한다.
}

let object = Singleton.shared
object.userInfoId = 777
Singleton.shared.userInfoId // 777

변수로 접근하는 순간 lazy하게 동작한다.