理解面向对象设计5(建立面向对象模型之设计模型)
时间:2010-05-01 来源:qingfenghao
2.3 设计模型
设计模型(也称设计模式--------Design Patterns)主要用于构建三大类软件:应用(Application)、工具集(Toolkit)和框架(Framework)。
- 应用
实现具体功能的软件。它对代码设计的要求是:内部复用性高,松耦合,对象之间不要有太多依赖(比如一个对象包含太多其他对象)。抽象类不多,很多类都有具体实现。
- 工具集
供应用或其他程序使用的软件。它抽象公共的功能,还要考虑应用在不同的平台和场景中,对设计要求比应用难。比如文件I/O类库。
- 框架
对同类应用抽象一个可复用的框架,这样开发者只需编写少量代码就可以完成一个具体应用。它的特点是抽象类比较多,也有一些具体实现,它的设计难度最大。
工具集是代码复用,而框架是设计复用。程序在复用工具集时,直接调用其实现;而在复用框架时,一般需自己编写实现,供框架调用。
MFC是一个工具集和框架的综合体,开发者可在其上开发应用。其一个缺点是只针对Windows平台,所以有了Java。
在众多设计模型中,我们可以看到很多对象之间包含的情况。从处理方式上来看,有两种:一种是包含对象根据一定流程调用被包含对象进行处理,这时被包含对象是被动的,比如Strategy模型;另一种是被包含对象在被事件触发后,调用包含对象的方法进行处理,这时被包含对象是主动的,比如Mediator和State模型。
2.3.1 composite
重合模型的主要特征是对象内部包含同类对象,也就是说,对象是由一(多)个同类对象构成。比如窗口由多个子窗口构成,MFC中大量可见这种模型。另一个比较好的例子是目录。目录由目录和文件构成。
2.3.2 bridge
桥接模型的一个典型应用是跨平台的实现。
问题:
解决:
还有其他很多设计模型,详细请见《Design Patterns》一书。
相关阅读 更多 +