Publishing Date:2020-10-14
접근제어자
배경지식
파일 간 또는 모듈 간에 접근을 제한할 수 있는 기능 -> 코드의 상세 구현은 숨기고 허용된 기능만 사용하는 인터페이스 제공
캡슐화
은닉화
Access Control in Swift
-
Open
공개(Public)과 흡사하나 클래스에서만 사용 가능 -
Public
어디에서든 사용 가능
주로 프레임워크에서 외부와 연결될 인터페이스를 구현하는데 많이 사용됨 - Internal
default: 기본적으로 모든 요소에 지정되는 기본 접근 수준
소스 파일이 속한 모듈에서는 전부 사용 가능하나 외부에서 접근 불가 -
File-private
구현된 소스파일 내부에서만 사용 가능 - Private
그 기능을 정의한 범위 내에서만 사용 가능
구현시 주의사항
- 상위 요소가 하위 요소보다 더 높은 접근 수준을 가질 수 없다
- 함수의 매개변수로 전달된 타입보다 함수의 접근 수준이 높을 수 없다
읽기 전용 구현
저장 프로퍼티를 구현할 때 허용된 접근 수준에서 값을 변경할 수 없도록 읽기 전용으로 구현
// 공개 접근 수준
// setter만 비공개 접근 수준
public private(set) var propertyName
왜 사용하는가?
외부에서 보거나 접근하면 안 되는 코드의 필요한 부분만을 제공
Comments