《写给大家看的面向对象编程书》总结&&实践(8)

框架与重用: 使用接口和抽象类实现设计

本章讨论代码重用、框架、契约、接口和抽象类等主题

代码:重用还是不重用

OO方法提供了一些机制,有利于可重用diamante的开发。创建可重用代码的一种方法就是创建框架。本章将重点讨论如何使用接口和抽象类来创建框架,并促进重用diamante开发。

什么是框架

框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法; 另一种定义认为,框架是可被应用开发者定制的应用骨架。

什么是契约

契约是要求开发人员遵守应用编程接口规范所需的机制。

抽象类

实现契约的一种方法是通过抽象类来实现;。抽象类(abstract class)包含一个或者多个没有提供任何具体实现的方法。

采用这种只有声明而没有实现的方法,可以实现多态。在实例化的对象中重写父类的方法。

接口

接口并没有被声明为一个类,接口包含了抽象方法,这些方法中没有实现。也可以说,接口不提供任何实现。
因此,实现了接口的任何类都必须提供所有的方法的实现。

集成

问题:抽象类可以同时提供抽象方法和具体方法,而接口之鞥呢提供抽象方法。为什么会存在这一个区别?

继承时建立在密切的联系的继承上,而接口并没有这种联系。
抽象类表示某种实现,但是接口并不会提供任何类型的实现,只提供行为,说明是一个说明方法。
所以接口可以独立在抽象类之外而不受的类的制约,在需要的时候都可以实现接口。

编译器的证明

建立契约定

定义契约的简单规则是提供一个未实现的方法,可以通过抽象类提供,也可以通过接口提供。因此,当设计一个子类来实现某个契约时,它必须为父类或接口中未实现的方法提供实现。

小结

设计了和对象模型时,最为重要的是理解对象直接如何关联。