Notice
Recent Posts
Recent Comments
Link
관리 메뉴

김종권의 iOS 앱 개발 알아가기

[iOS - swift] 네임스페이스 정의 방법 (enum, extension) 본문

iOS 응용 (swift)

[iOS - swift] 네임스페이스 정의 방법 (enum, extension)

jake-kim 2024. 1. 2. 01:00

네임스페이스 정의 방법

  • nested-type으로 여러 타입을 지정하고 싶은 경우, 보통 아래처럼 class타입 안에 class로 지정하는 경우가 있지만 이렇게 되면 DesignSystem1이라는 클래스 안에 여러가지의 nested-class가 많아지는 구조로 번식
  • 또 DesignSystem1은 class타입이므로 불필요한 생성자가 존재
public class DesignSystem1 {
    public class RadioButton {
        
    }
}
  • 단순히 namespace만 관리할 목적이고 생성자가 필요 없으므로 enum을 활용
// DesignSystem.swift

public enum DesignSystem {
    public class RadioButton {
        
    }
}
  • 또한 namespace를 정의할 때는 위처럼 구현하다보면 하나의 DesignSystem이르는 enum 타입 안에 여러가지의 class가 만들어지면 코드를 읽기가 불편하므로 파일 자체를 분리하고 extension으로 표현하도록 하는것이 코드 관리에 많은 이점이 존재
// DesignSystem+RadioButton.swift
public extension DesignSystem {
    class RadioButton {
        
    }
}

정리

  • 단순히 네임스페이스만 표현할때는 불필요한 생성자 없이 타입만 표시할 수 있는 enum을 활용
  • 하위 타입들을 정의할때는 파일을 분리하여 extension을 활용
Comments