2016-08-08 4 views
1

인스턴스에 속성 만있는 클래스를 제공하는 타사 프레임 워크를 사용하고 있습니다. 내 응용 프로그램에서이 인스턴스에 추가 속성을 추가하고 싶습니다. 이 작업을 수행하는 적절한 방법은이 시나리오에 맞습니까?클래스 확장과 Swift의 서브 클래 싱?

가) 내 응용 프로그램

b)는 내가 사전에

감사를 필요로하는 새로운 속성을 프레임 워크의 클래스의 서브 클래스를 생성 및 정의에 프레임 워크의 클래스를 확장

답변

8

그건

b)

클래스 확장에 속성을 추가하는 것이 지원.

사용하여 확장을위한 두 가지 중요한 규칙이 있습니다

    확장

  • 유형에 새로운 기능을 추가 할 수 있지만,이 기능을 기존 무시할 수 없습니다

  • 확장 새로운 계산 된 속성을 추가 할 수 있지만, 저장된 속성을 추가하거나 기존 속성에 속성 관찰자를 추가 할 수 없습니다.

2

이것은 예상 한 동작이 무엇인가에 달려 있습니다.이 당신은 계산 및 바르 새로운 방법을 추가 할 수 있지만 당신은 당신의 코드에서 원활한 노력을 달성 :

확장. 당신 새 바르오버라이드 기능을 추가 할 수 있지만, 코드에서 더 큰 공간이있다 : 새로운 기능은 어디

서브 클래스 코드에서 새로운 클래스를 추가하지 않고 사용할 수 있습니다. 프로젝트 전체에서 특정 하위 클래스를 사용해야합니다.

디자인상의 질문 일 것 같습니다.

나의 제안 : 전체 프로젝트가 새 기능 사용을 확장, 그렇지 않으면 서브 클래스을 필요로합니다.

+0

답장을 보내 주셔서 감사합니다. – AppsDev

+1

마지막 지점은 종종 간과되는 것 같습니다. 확장 기능은 전역이므로 복잡하지 않게되는 코드 부분에 영향을줍니다. 그런 이유로 나는이 상황에서 그들이 피해야한다고 생각합니다. – LegendLength