许多iOS开发人员了解类,对象,继承,多态性和接口的面向对象的概念. 但是类继承和接口继承(子类型化)之间有什么区别?接口定义类型,接口继承(子类型化)使我们可以将一个对象替换为另一个. 另一方面,类继承是通过重用父类的功能或简单地共享代码和表达式来定义对象的实现和类型的机制. 类继承使我们可以从现成的类中继承所需的大多数功能,以快速定义新的类. 实际上,类和类型是非常紧密相关的. 但是,不同之处在于,一个对象可以具有多种类型,而同一类型的对象可以具有同一类型.
定义具有相同接口的组很重要,因为多态性是基于接口的. 其他面向对象的编程语言(例如Java)允许iOS开发人员定义“接口”(与类不同)类型,该类型确定客户端与所使用的特定类之间的“合同”. 在Objective-C中有一个类似的东西叫做协议(protoc01). 协议也是对象之间的契约,但是它本身不能被实例化为对象. 实现协议或从抽象类继承,以便对象共享相同的接口. 因此,该子类型的所有对象都可以响应对协议或抽象类接口的请求.
这有以下两个好处:
1. 对象接口符合. 只要对象符合客户端所需的接口,客户端就不必关心所使用对象的确切类型.
2. 客户端仅知道定义接口的协议或抽象类,因此客户端对对象的类一无所知. 这就引出了GoF可重用的面向对象软件设计的原则: 用于接口编程,而不是用于实现编程. 通常的做法是不在客户端代码中声明特定具体类的变量,而仅使用协议或抽象类定义的接口.
设计模式肯定会在许多方面影响系统设计. 但是有些设计原则也会影响设计. 一些原则用于通用软件设计,而某些原则则用于Objective-c和cocoa Touch. 上述文章针对接口编程针对接口编程,而不是编程. 如果您想进一步了解iOS开发知识针对接口编程,请在整个站点上单击“丁学堂iOS开发教程”免费视频讲座. 欢迎您的参与.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-255126-1.html