设计原则针对接口编程,而非实现编程

2015-12-28 17:44:03 803浏览

        很多iOS开发人员理解类、对象、继承、多态和接口这些面向对象概念。可是类继承与接口继承(子类型化)的区别何在?接口定义了类型,接口继承(子类型化)让我们可以用一个对象代替另一个对象。另一方面,类继承是通过复用父类的功能或者只是简单地共享代码和表述,来定义对象的实现和类型的一种机制。类继承让我们能够从现成的类继承所需大部分功能,从而快速定义新的类。其实,类和类型关系非常密切。不过,差别在于一个对象可以具有多种类型而不同类的对象可以有相同的类型。

iOS开发设计原则""

        定义具有相同接口的类群很重要,因为多态是基于接口的。其他面向对象的编程语言,如Java,允许iOS开发者定义“接口”(区别于类)类型,它确定了客户端同所用的具体类之间的一种“合约”。Objective-C中有一种类似的东西叫做协议(protoc01)。协议也是对象之间的一种合约,但本身不能实例化为对象。实现协议或者从抽象类继承,使得对象共享相同的接口。因此,子类型的所有对象,都可以对针对协议或抽象类的接口的请求作出应答。

        这样做有以下两点好处:

        1、对象接口符合。只要对象符合客户端所要求的接口,客户端就不必在意所使用对象的确切类型。

        2、客户端只知道定义接口的协议或者抽象类,因此客户端对对象的类一无所知。这就得出了GoF在书中所说的可复用面向对象软件设计的原则:针对接口编程,而不是针对实现编程。通常的做法是,在客户端的代码中不声明特定具体类的变量,而只使用协议或抽象类定义的接口。

        设计模式肯定会从许多方面影响系统设计。但是有一些设计原则也会影响设计。有些原则针对一般的软件设计,而有些原则是针对Objective—c和cocoa Touch的。而上述所介绍的文章就是针对接口编程,而不是实现编程。想要了解更多关于iOS开发知识,扣丁学堂iOS开发教程全站免费视频讲座。欢迎您的参与。

查看更多关于“iOS资讯”的相关文章>>

标签:

热门专区

暂无热门资讯

课程推荐

微信
微博
15311698296

全国免费咨询热线

邮箱:codingke@1000phone.com

官方群:148715490

北京千锋互联科技有限公司版权所有   北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
京ICP备12003911号-6   Copyright © 2013 - 2019

京公网安备 11010802030908号