objc@interface的设计:隐藏继承关系中的私有接口
2014-06-11 22:50
253 查看
隐藏继承关系中的私有接口
感谢@像条狗在飞在留言中提出的问题,问题大概可以总结为:当子类需要使用父类的一个私有属性(方法)时,需要把这个属性(方法)放到父类的header中,但暴露给子类的同时暴露给了外部调用者,如何解决?
我的方案是:建立一个
私有header,使用
类扩展定义父类需要暴露给子类的属性(方法),然后在各自的
.m文件中引用,如:
有Father类和Son类,继承关系,可以考虑建一个如
FatherPrivate.h的私有header:
// FatherPrivate.h @interface Father () @property (nonatomic, copy) NSString *privateThingSonNeed; - (void)privateMethodNeedsSonOverride; @end
同时在Father.m和Son.m中同时import这个私有header,这样,Father和Son内部对于定义的属性和方法都是透明的,而对外部是隐藏的(因为两个类的header中都没有import这个私有header)
转自:objc@interface的设计哲学与设计技巧
相关文章推荐
- C#类设计时,何时用类继承(Base Class)何时用接口(Interface)
- Delphi 灵活运用接口(interface), 隐藏核心代码, 设计低耦合程序.
- 关于static静态的、继承、接口interface、final关键字、单例设计模式总结
- C#类设计时,何时用类继承(Base Class)何时用接口(Interface)
- Delphi 灵活运用接口(interface), 隐藏核心代码, 设计低耦合程序.
- 设计模式:Interface Inheritance (接口继承)和 Implementation Inheritance(实现继承)
- Java 学习笔记 (3) -抽象类 abstract 接口 interface 内部类 inner class 继承 extends 实现 implements 包 package
- ORM中的继承关系映射全解——单表继承体系、一实体一具体表、一实体一扩展表、接口映射
- 面向接口设计(Interface Oriented Design)
- java设计中深入理解abstract class和interface之间的关系
- 面向接口设计(Interface Oriented Design)
- VS2005的类设计器(Class Designer)中,如果显示让类继承接口,而不是实现接口?
- 浅谈类两种继承机制--接口(Interface)和类(Class)的区别
- 浅谈类两种继承机制--接口(Interface)和类(Class)的区别
- 接口(interface)原来是可以被继承(extends)的
- 接口(interface)原来是可以被继承(extends)的
- IDL中有继承关系的接口不应有重复的属性和方法
- [翻译] Effective C++, 3rd Edition, Item 34: 区分 inheritance of interface(接口继承)和 inheritance of implementation(实现继承)(下)
- 面向接口设计(Interface Oriented Design)
- 区分 inheritance of interface(接口继承)和 inheritance of implementation(实现继承)