Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1933042
  • 博文数量: 77
  • 博客积分: 2175
  • 博客等级: 大尉
  • 技术积分: 2491
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-20 20:49
个人简介

欢迎光临我的博客

文章分类

全部博文(77)

文章存档

2023年(1)

2018年(4)

2017年(1)

2016年(2)

2015年(2)

2013年(5)

2012年(29)

2010年(33)

分类: C/C++

2010-05-01 16:05:07

2.3 设计模型

设计模型(也称设计模式--------Design Patterns)主要用于构建三大类软件:应用(Application)、工具集(Toolkit)和框架(Framework)

  • 应用

实现具体功能的软件。它对代码设计的要求是:内部复用性高,松耦合,对象之间不要有太多依赖(比如一个对象包含太多其他对象)。抽象类不多,很多类都有具体实现。

  • 工具集

供应用或其他程序使用的软件。它抽象公共的功能,还要考虑应用在不同的平台和场景中,对设计要求比应用难。比如文件I/O类库。


  • 框架

对同类应用抽象一个可复用的框架,这样开发者只需编写少量代码就可以完成一个具体应用。它的特点是抽象类比较多,也有一些具体实现,它的设计难度最大。

 

工具集是代码复用,而框架是设计复用。程序在复用工具集时,直接调用其实现;而在复用框架时,一般需自己编写实现,供框架调用。

MFC是一个工具集和框架的综合体,开发者可在其上开发应用。其一个缺点是只针对Windows平台,所以有了Java

 

在众多设计模型中,我们可以看到很多对象之间包含的情况。从处理方式上来看,有两种:一种是包含对象根据一定流程调用被包含对象进行处理,这时被包含对象是被动的,比如Strategy模型;另一种是被包含对象在被事件触发后,调用包含对象的方法进行处理,这时被包含对象是主动的,比如MediatorState模型。

2.3.1  composite

重合模型的主要特征是对象内部包含同类对象,也就是说,对象是由一(多)个同类对象构成。比如窗口由多个子窗口构成,MFC中大量可见这种模型。



另一个比较好的例子是目录。目录由目录和文件构成。

2.3.2  bridge

桥接模型的一个典型应用是跨平台的实现。

问题:





解决:




还有其他很多设计模型,详细请见《Design Patterns》一书。


《返璞归真--UNIX技术内幕》在全国各大书店及网城均有销售:
                         
                       

阅读(11178) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~