Chinaunix首页 | 论坛 | 博客
  • 博客访问: 109441
  • 博文数量: 17
  • 博客积分: 1430
  • 博客等级: 上尉
  • 技术积分: 200
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-13 12:10
文章分类
文章存档

2010年(1)

2009年(5)

2008年(11)

我的朋友

分类:

2010-01-12 21:13:27

《设计模式:可复用的面向对象软件的基础》
    在一定抽象层次上讨论模式,是对被用来在特定场景下解决一般设计问题的类和互相通信的对象的描述。
    一个设计模式命名、抽象和确定了一个通用设计结构的主要方面,这些设计结构能被用来构造可复用的面向对象设计。设计模式确定了所包含的类和实例,它们的角色、协作方式以及职责分配。每一个设计模式都集中于一个特定的面向对象设计问题或设计要点,描述了什么时候使用它们,在另一些设计约束条件下是否还能使用,以及使用的效果和如何取舍。
    一个真正问题的解决方案可能是将多种设计模式灵活、复杂地结合在一起形成一个设计框架。设计模式是基础,是元素,可能并不是能直接解决问题的答案,不能生搬硬套。
    设计结果所得到的类通常在现实世界中并不存在,因为为了应对现实世界的改变和复杂,对世界现实进行了抽象(抽象出本质)。这些抽象对象在分析阶段,甚至在设计阶段的早期都并不存在,后来为使设计更灵活,复用性更好才将它们发掘出来。设计模式可以帮你确定并不明显的抽象和描述这些抽象的对象。
    设计模式不会帮你把软件系统建立起来,也一点不会减少你在面向对象设计上花的时间!它是用来重构软件系统或减少重构的。
   
    面向对象程序由对象组成,对象包括数据和对数据进行操作的过程,过程通常称为方法或操作。对象在收到客户请求(或消息)后,执行相应的操作。
    面向对象设计最困难的部分是将系统分解成对象集合。
    面向对象设计方法学支持许多设计方法。你可以写出一个问题描述,挑出名词和动词,进而创建相应的类和操作(用例驱动设计);或者你可以关注于系统的协作和职责挂系(UML驱动设计);或者你可以对现实世界建模,再将分析时发现的对象转化至设计中(建模设计);甚至不进行设计(测试驱动开发)。
 
    只在会发生改变的地方使用复用设计,复用设计会带来复杂性。
    复用设计方法很多,最基本的有继承(复用父类的实现,因为存在多种子类型,并可能还会有更多),接口多态(具有相同操作的对象族,仅需添加自己的方法和实现相同的接口),模板,对象组合。
    设计模式是对上述基本复用设计方法的综合,更高级的复用设计方法。
 
    获得最大限度复用的关键在于对新需求和已有需求发生变化时的预见性,要求你的系统设计要能够相应的改进。
    一个不考虑系统变化的设计可能会导致重新设计。设计模式可以确保系统能以特定方式变化,从而帮助你避免重新设计系统。每个设计模式允许系统结构的某个方面的变化独立于其它方面,这样产生的系统对于某一种特殊变化将更健壮。
 
创建型模式
(一)Abstract Factory (抽象工厂)
 
创建某类一系列产品,并易于更换类。
 
 
 
 
阅读(534) | 评论(0) | 转发(0) |
0

上一篇:thinking in c++ 第一卷总结

下一篇:没有了

给主人留下些什么吧!~~