Jac*_*nkr 2 inheritance objective-c composition
我来自ECMAScript背景(似乎是非常C/C++).因此,我学习了经典的C++样式继承,包括类,对象和多态等很酷的东西.
我最近喜欢Android和iOS开发.Java看起来是基于C的,所以我很好地使用了我的大多数基于C的规则,但是iOS足够不同以至于我对我的方法很谨慎 - 特别是对象继承这样的东西.
我问,因为似乎对作文有一些强烈的意见.从我迄今为止看到的构图,我不是最大的粉丝,除非该项目提供了一个很好的理由来使用它.
你是专业的Obj-C/iOS开发者,你会推荐构图而不是经典继承吗?还是情境化的东西?
Objective-C的对象模型与C/C++/Java完全不同.它基于消息,因此更多的重点放在响应消息的对象上,而不是像在C/C++/Java中那样调用方法.
Cocoa库的方法倾向于更平坦的对象继承层次结构,并依赖于委托模式进行自定义并使这些对象层次结构保持平坦.为什么这样?很多库,特别是GUI,由于层次结构膨胀而导致复杂化,以至于不清楚您继承哪个类.例如,视频游戏中的大多数现代对象系统(作为我的专业行业)使用组合范例,其中通过混合行为来构造对象,因为它在实践中更灵活且更易于维护.
我不会说Cocoa库使用组合模型,而是使用模型 - 视图 - 控制器区域中明确划分的类之间的交互,并使用委托进行自定义.将定制与核心功能分开可以降低复杂性,使层次结构更加平坦.
| 归档时间: |
|
| 查看次数: |
3673 次 |
| 最近记录: |