Swift는 자체적으로 Namespace를 지원하지 않기 때문에, Namespace를 대체하여 사용할 수 있는 방법을 제시한다.
먼저 첫번째 방법은 Structure를 사용하는 것이다. 해당 방법은 적용하기 쉽고, Syntax적으로도 쉽게 접근할 수 있는 방법이다. 하지만 Structure를 이용할 경우, 발생할 수 있는 Side Effect는 Namespce로 사용하겠다고 한 Structure가 상속이 될 가능성이 있다는 것이다.
struct API {
static let BaseURL = "https://example.com/v1/"
static let Token = "sdfiug8186qf68qsdf18389qsh4niuy1"
}
물론 이때는 init()을 private 키워드로 설정하여, 상속을 방지할 수 있다.
struct API {
private init() {}
static let BaseURL = "https://example.com/v1/"
static let Token = "sdfiug8186qf68qsdf18389qsh4niuy1"
}
다른 방법은 Enumeration을 이용한 방법이다. Enumeration은 말 그대로 열거만 가능할뿐, 상속이 불가하다!. 이때, static 키워드를 이용한다는 것이 핵심이다.
enum API {
static let BaseURL = "https://example.com/v1/"
static let Token = "sdfiug8186qf68qsdf18389qsh4niuy1"
}