您的位置:首页 > 数据库

设计模式笔记

2005-08-29 15:47 246 查看
看了半个月的设计模式,理解还不是很清晰,暂时把自己的笔记放上来,希望大家对我理解过程过的一些问题予以指出,谢谢!

A:创建模式

   1.设计模式之Factory(工厂模式)
  
   利用专门的类来实现对目标对象的实例化,替换new A()这样的方法,根据方法的参数值,可以生产出不同的对象实例!
  
   2.设计模式之Prototype(原型模式)
  
      用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.
   Prototype 模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的
   细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象
   通过请求原型对象拷贝它们自己来实施创建
   通过实例化后的子类来还原抽象父类对象的方法,及根据一个子类来对其父类进行实例化。
  
   3.设计模式之Builder
  
    通过接口,构建相关的对象
  
   4.设计模式之Singleton(单态模式)
  
B:结构模式
   5.设计模式之Facade(外观)
   对模块采用单一接口接入,就像使用JDBC时,采用一个类来进行,jdbc和数据连接池的操作
  
   6.设计模式之Proxy(代理)
  
   无可避免总要涉及到系统的授权或安全体系,不管你有无意识的使用Proxy,
实际你已经在使用Proxy 了.
  
   在进行某些模块的访问时,通过代理,可以在代理部分,有效的添加对访问有效性以及用户访问权限的控制.
  
   7 Adapter(适配器)
   为两个接口不一致的类设计一个类,能够连接这两个类,使这两个类能够一起协调工作!
 
   8 Composite(组合)
   为树状结构的数据提供一个便捷的访问通道,通过一个入口,可以快速的找寻到这个节点下面的所有子节点,包括属性以及子容器
   适合与论坛中帖子的层次管理模式.
   9 Decorator(油漆工)(装饰)
  
   10 Bridge (桥)
   将抽象和行为划分开来,各自独立,但能动态的结合.
   最明显的应用就是在连接不同数据库时使用的DAO模式,通过不同的实现接口实现对不同数据库的访问
  
   11 FlyWeight(享元)
   避免大量拥有相同内容的小类的开销,使大家共享一个类.
C.行为模式  
   12 Template(模板)
   定义算法操作中的骨架,并将一些具体操作延迟到子类实现.类似抽象类,扩展性强
  
   13 Memento(备忘机制)
   专门用来保存某个对象的相关属性信息,并可以根据需要对对象进行恢复!
  
   14 Observer(观察者)
   及时跟踪监视某一对象,根据需要触发新的事务操作
   Java的API中已有相应的接口Java.util.Observer
   大致实现过程:
   通过编写一个观察对象类,并在被观察对象类中实现对指定要素的观测方法,从而在对象的某个属性发生改变时,观察对象类即触发进行相关的处理.
  
   15 Chain Of Responsibility(职责链)
  
   对某个接口的实现过程,有一个依次顺序处理的过程,先A,后B,再C的处理顺序进行处理,
   具体的实例就是GUI设计中,鼠标的触发事件,就是一个依次处理的例子!
  
  
   16  Command (指令)
  
   类似与将命令封装处理
   统一的使用一个接口进行处理
   对指令封装,通过一个指令入口,处理一系列的指令执行过程!
  
   17 State(状态模式)
   用来修改对象属性,从而在处理对象时,可以根据不同的对象属性进行不同的处理指令.有点象表单处理过程中,表单不同状态!
  
   18 Strategy(策略)
  
   对象行为型模式,主要是定义一系列的算法,然后把这些算法一个个封装为单独的类(有点别扭)
   继承于统一算法基类的不同的算法实现类(处理方法),作为计算对象的构造对象,赋值给计算对象,然后同样的后续处理进行指令调度处理,唯一差别就是在规则确定时,分别赋值两种不同的算法实现类!
   示例中采用的是在类的构造过程中,通过使用不同的策略类,从而构建不同的类,然后通过调用同样的执行参数,即可达到不同策略的处理指令结果!
 
   19 Mediator(中介者)
   通过使用中间对象来封装多个对象的交互行为
  
   最显著的应用,MVC模式中的View Controller就是一种Mediator的应用,它是JSP和服务器上应用程序间的Mediator.
  
   20 Interpreter(解释器)
      通过定义语言的文法,以及建立一个解释器来解释该语言中的句子.
     
   21 Visitor(访问者)
     
      作用于某个对象群中各个对象的操作,使用户在不改变这些对象本身的情况下,定义作用于这些对象的新操作
     
      通过定义一个专门的访问者接口,通过被访问者实现这个接口,从而确定被访问者能够实现可访问性!
      集合中的某个对象,实现了这个访问者的接口,则可以通过访问者提供的身份类型访问.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息