API接口设计原则.doc

API接口设计原则.doc

ID:55630907

大小:18.50 KB

页数:4页

时间:2020-05-21

API接口设计原则.doc_第1页
API接口设计原则.doc_第2页
API接口设计原则.doc_第3页
API接口设计原则.doc_第4页
资源描述:

《API接口设计原则.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、API接口设计原则一、针对接口编程,而不是针对实现编程– 客户无需知道所使用对象的特定类型,只需要知道对象拥有客户所期望的接口。小注:     接口是定义行为,只是定义我们要做什么事情,至于如何做这些事情是由接口的实现来做的,当我们定义接口的时候无需关心这个行为如何实现,只要知道有这个接口就可以。     别人在调用你的代码的时候,都是调用你的接口对象,至于如何实现,对别人是透明的。二、优先使用对象组合,而不是类继承– 类继承通常为“白箱复用”,对象组合通常为“黑箱复用”。继承在某种程度上破坏了封装性,子类父类耦合度高;而对象组合则只要求被组合的对象具有良好

2、定义的接口,耦合度低。小注:     因为继承在编译时刻就定义了,所以无法在运行时刻改变从父类继承的实现。更糟的是,父类通常至少定义了部分子类的具体表示。因为继承对子类揭示了其父类的实现细节,所以继承常被认为“破坏了封装性” 。子类中的实现与它的父类有如此紧密的依赖关系,以至于父类实现中的任何变化必然会导致子类发生变化。当你需要复用子类时,实现上的依赖性就会产生一些问题。如果继承下来的实现不适合解决新的问题,则父类必须重写或被其他更适合的类替换。这种依赖关系限制了灵活性并最终限制了复用性。一个可用的解决方法就是只继承抽象类,因为抽象类通常提供较少的实现。  

3、   对象组合是通过获得对其他对象的引用而在运行时刻动态定义的。组合要求对象遵守彼此的接口约定,进而要求更仔细地定义接口,而这些接口并不妨碍你将一个对象和其他对象一起使用。这还会产生良好的结果:因为对象只能通过接口访问,所以我们并不破坏封装性;只要类型一致,运行时刻还可以用一个对象来替代另一个对象;更进一步,因为对象的实现是基于接口写的,所以实现上存在较少的依赖关系。  对象组合对系统设计还有另一个作用,即优先使用对象组合有助于你保持每个类被封装,并被集中在单个任务上。这样类和类继承层次会保持较小规模,并且不太可能增长为不可控制的庞然大物。另一方面,基于对象

4、组合的设计会有更多的对象 (而有较少的类),且系统的行为将依赖于对象间的关系而不是被定义在某个类中。 三、封装变化点– 使用封装来创建对象之间的分界层,让设计者可以在分界层的一侧进行修改,而不会对另一侧产生不良的影响,从而实现层次间的松耦合。小注:     考虑你的设计中哪些地方可能变化,这种方式与关注会导致重新设计的原因相反。它不是考虑什么时候会迫使你的设计改变,而是考虑你怎样才能够在不重新设计的情况下进行改变。这里的关键在于封装发生变化的概念,这是许多设计模式的主题。---《设计模式》四、使用重构得到模式- 设计模式的应用不宜先入为主,一上来就使用设计模

5、式是对设计模式的最大误用。没有一步到位的设计模式。敏捷软件开发实践提倡的“Refactoring to Patterns ”是目前普遍公认的最好的使用设计模式的方法。五、单一职责原则(SRP Single Responsibility Principle)– 一个类应该仅有一个引起它变化的原因。小注:     所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责。而单一职责原则就是指一个类或者模块应该有且只有一个改变的原因。 六、开放封闭原则(OCP Open Closed Principle)– 类模块应该是可扩展的,

6、但是不可修改(对扩展开放,对更改封闭)小注:    1、对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。     2、对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对类进行任何修改。比如:     将业务功能抽象为接口,当业务员依赖于固定的抽象时,对于修改就是封闭的;而通过继承和多态机制,从抽象体派生出新的扩展实现,就是对扩展的开放。 七、Liskov 替换原则(LSP Liskov Substitution Pinciple)– 子类必须能够替换它们的基类。 八、依赖倒置原则(DIP Dependency In

7、version Principle)– 高层模块不应该依赖于低层模块,二者都应该依赖于抽象。– 抽象不应该依赖于实现细节,实现细节应该依赖于抽象。 九、接口隔离原则(ISP Interface Segregation Principle)– 不应该强迫客户程序依赖于它们不用的方法。尽量应用专门的接口,而不是单一的总接口,接口应该面向用户,将依赖建立在最小的接口上。 十、合成/聚合复用原则(CARP Composite/Aggregate Reuse Principle )-在新对象中聚合已有对象,使之成为新对象的成员,从而通过操作这些对象达到复用的目的。合成

8、方式较继承方式耦合更松散,所以应该少继承、多聚合。小

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。