框架与重用: 使用接口和抽象类实现设计
本章讨论代码重用、框架、契约、接口和抽象类等主题
代码:重用还是不重用
OO方法提供了一些机制,有利于可重用diamante的开发。创建可重用代码的一种方法就是创建框架。本章将重点讨论如何使用接口和抽象类来创建框架,并促进重用diamante开发。
什么是框架
框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法; 另一种定义认为,框架是可被应用开发者定制的应用骨架。
什么是契约
契约是要求开发人员遵守应用编程接口规范所需的机制。
抽象类
实现契约的一种方法是通过抽象类来实现;。抽象类(abstract class)包含一个或者多个没有提供任何具体实现的方法。
采用这种只有声明而没有实现的方法,可以实现多态。在实例化的对象中重写父类的方法。
接口
接口并没有被声明为一个类,接口包含了抽象方法,这些方法中没有实现。也可以说,接口不提供任何实现。
因此,实现了接口的任何类都必须提供所有的方法的实现。
集成
问题:抽象类可以同时提供抽象方法和具体方法,而接口之鞥呢提供抽象方法。为什么会存在这一个区别?
继承时建立在密切的联系的继承上,而接口并没有这种联系。
抽象类表示某种实现,但是接口并不会提供任何类型的实现,只提供行为,说明是一个说明方法。
所以接口可以独立在抽象类之外而不受的类的制约,在需要的时候都可以实现接口。
编译器的证明
建立契约定
定义契约的简单规则是提供一个未实现的方法,可以通过抽象类提供,也可以通过接口提供。因此,当设计一个子类来实现某个契约时,它必须为父类或接口中未实现的方法提供实现。
小结
设计了和对象模型时,最为重要的是理解对象直接如何关联。