设计模式基础(设计模式笔记一)

Posted on 2005-08-24 10:52 飞马 阅读(241) 评论(0)  编辑  收藏 所属分类: Java

设计模式---可复用面向对象软件的基础

1  设计模式四要素
    模式名称、问题、解决方案、效果

2  设计模式描述
    模式名和分类、意图、别名、动机、适用性、结构、参与者、协作、效果、实现、代码示例、已知应用(至少两个)、相关模式

3  设计模式编目
    即设计模式分类

4  设计模式作用
    1)寻找合适的对象
    2)决定对象的粒度
    3)制定对象接口
    4)描述对象的实现
    5)运用复用机制
    6)关联运行时刻和编译时刻的结构
    7)设计应支持变化

5   重要概念
1 )类继承与接口继承
      类继承根据一个对象的实现定义了另一个对象的实现。它是代码和表示的共享机制。
     接口继承(子类型)描述了一个对象什么时候能被用来替代另一个对象。

2)针对接口编程,而不是针对实现编程。

3)3种复用技术
     继承、组合(委托是组合的一种)与参数化类型
     组合技术是通过获得对其他对象的引用而在运行时刻动态定义的。允许你在运行时刻改变被组合的行为,但是它存在间接性,比较低效。
     继承在编译时刻静态定义的,可直接使用。允许你提供操作的缺省实现,并通过子类重定义这些操作。破坏了封装性。
    参数化类型允许你改变类所用到的类型。如generic(Ada,java预留)和templates(C++)
    继承和参数化类型都不能在运行时刻改变。
    注意:优先使用对象组合,而不是类继承。

 委托(delegation)使组合具有与继承同样的复用能力。
  4)2种复用层次
     代码复用(如工具箱、类库)、设计复用(如框架)

  5)模式设计应该封装变化    P20

  6)聚合(aggregation) 与相识(acquaintance,也称为:关联、引用)
      聚合意味着一个对象拥有另一个对象或对另一个对象负责。一般我们称一个对象包含另一个对象或者是另一个对象的一部分。聚合意味着聚合对象和其他所有者具有相同的生命周期。
      相识意味着一个对象仅仅知道另一个对象。相识的对象可能请求彼此的操作,但是他们不为对方负责。相识是一种比聚合要弱的关系,它只标示对象间松耦合关系。
     聚合还是相识是由你的意图而不是由显式的语言机制决定的。它们的区别在编译时刻(源代码)很难看出来。


只有注册用户登录后才能发表评论。


网站导航:
 

posts - 1, comments - 0, trackbacks - 0, articles - 5

Copyright © 飞马