三、设计模式综述

来源:互联网 发布:小米max手机套 淘宝 编辑:程序博客网 时间:2024/05/06 15:24

作用:提供前人的经验供开发者们借鉴,目的是为了提高代码质量、提高软件设计和系统架构能力。

分类:(1)侧重点是代码的Gof23经典设计模式

             (2)侧重点是系统架构的J2EE设计模式

             二者虽然角度不同,但其本质相同,从更高的层次来说,应该是 统一在 从业务需求的角度 进行软件设计 的理念中。

gof23的设计模式大致可分为如下三类:

创建模式:是对类的动态地实例化过程的抽象。包括:工厂模式,单例多例模式,建造模式,原始模型模式;

结构模式:是描述如何将类或者对象结合起来在一起形成更大的结构。包括:适配器模式,合成模式,装饰模式,代理模式,享元模式,门面模式,桥梁模式;

行为模式:是在不同的对象之间划分责任和算法的抽象。包括:不变模式,策略模式,模板模式,观察者模式,迭代子模式,责任链模式,命令模式,备忘录模式,状态模式,访问者模式,解释器模式,调停者模式;

在J2EE核心设计模式中,主要讲述使用Servlet、JSP、EJB、JMS 、JDBC、JNDI这几种技术规范对系统进行构建的经验,并且强调每种模式在系统中并不是独立存在的而是相互关联的。

特性:

  • 来源于前人经验的分享。
  • 通过结构化的记录进行积累。
  • 某种模式出现的意义是为了避免重新设计,少走弯路。
  • 对于相同部分的设计进行不同程度的抽象。
  • 可以经过不断的完善进行重新的组合。
  • 多个模式可以在同一系统中进行使用。
  • 让系统设计更简单,降低复杂度。
  • 让系统可以达到最大化的复用。

场景:
        任何设计模式,包括Sun提出的J2EE核心设计模式,还有4人帮提出的gof23的设计模式只能作为开发中的一种手段和工具,还需要开发者自己对系统、对需求、对业务场景有详细的了解,所以在使用J2EE核心设计模式之前有些前提条件,例如:

  • 确定当前的应用场景。
  • 确定运行当前的业务场景的前提条件。
  • 界定系统中每个用户角色的权限范围。
  • 与上层模块,上层系统的关联性关系。

另外,不管在任何情况下使用J2EE核心设计模式有一个规则,这个规则由三部分组成,分为: 特定环境、特定系统作用、特定软件配置之间的关系。