随笔分类 -  跟JBPM学设计模式

摘要:跟JBPM学设计模式之组合模式 模式简介 组合模式,将对象组合成树形结构以表示“部分与整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 合成模式属于对象的结构模式,合成模式将对象组织到树形的结构中,可以用来描述整体与部分的关系。合成模式可以是客户端将单纯元素和复合元素同等的看待。 树形结构在各种类型的语言中发挥了巨大的作用,一个基于集成类型的等级结构就是一个树结构;同样一个基于合成的对象的结构也是一个树结构。在编程中我们一般遇到的树结构都是连通的有方向的树形结构。 有向树结构可以分为三种,从上到下、从下到上、双向的。这三种图中,树的节点和他们之间的关系都是一样的,但是. 阅读全文
posted @ 2012-07-08 05:48 无风听海 阅读(1724) 评论(0) 推荐(0) 编辑
摘要:跟JBPM学设计模式之适配器模式 模式简介 适配器模式(Adapter),将一个类的接口转换成客户希望的另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 说起适配器模式,大家一定会想起我们笔记本使用的适配器。插座输出的电压是220v,我们的笔记本电脑是不能直接使用的,这个时候就需要一个中介,它可以输入220v的电压,然后输出笔记本电脑所需要的电压。这个例子中,我们可以将插排输出的电压,理解为其对外发布的接口;而笔记本需要的输入电压,可以理解为客户需要的接口;而适配器的工作就是将服务者提供的接口“适配”成客户需要的接口。 适配器模式由类的适配器模式和对象的适配器. 阅读全文
posted @ 2012-06-30 05:30 无风听海 阅读(1176) 评论(0) 推荐(1) 编辑
摘要:跟JBPM学设计模式之原型模式模式简介 原型模式,用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式其实就是从一个对象创建另外一个可以定制的对象,而且客户是不需要知道任何创建的细节的。原型模式给每一个产品类配备一个克隆方法(大多的时候只需要给产品等级结构的顶级类配备一个克隆方法即可),这样,一个使用了原型模式的系统与他的产品对象时怎么创建出来的,以及这些产品对象的结构式怎样的,以及这个结构是否会发生变化就没有关系了。原型模式的结构图如下 图 1. 原型设计模式结构图 原型模式中涉及到了三种角色,分别是客户角色、抽象原型角色、具体原型角色。 客户角色:客户提出创建对象的需求 阅读全文
posted @ 2012-06-09 13:25 无风听海 阅读(1077) 评论(0) 推荐(0) 编辑
摘要:跟JBPM学设计模式之建造者模式 模式简介 建造者模式,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 一个产品常常会有不同的组成成分作为零部件,这些零件可能是对象,也可能不是对象,他们通常由叫做产品的内部表象。不同的产品可以有不同的内部表象,也就是不同的零部件。使用建造者模式可以使客户端不需要知道所生成的产品对象有哪些零部件,每个产品的相应零部件有什么不同,是怎么建造出来的,以及是怎样组成产品的。建造者模式的简图如下 图 1. 建造者模式结构图 在这个示意图中,最终产品是由两部分组成的,所以相应的建造方法也有两个。这个模式涉及到一下四个角色。 抽象... 阅读全文
posted @ 2012-06-05 01:57 无风听海 阅读(1216) 评论(2) 推荐(0) 编辑
摘要:跟JBPM学设计模式之抽象工厂模式 模式简介 前面我们已经学习了简单工厂模式和工厂方法模式,今天我们来学习一下抽象工厂模式;抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。抽象工厂模式是所有的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式的基本结构图如下所示。 图 1. 抽象工厂结构图 左边的等级结构代表工厂的等级结构,右边的等级结构代表两个不同产品的等级结构。此模式可以向客户端提供一个借口,使得客户端不用指定产品的具体类型的情况下,同时创建出多个产品对象。一般情况下我们使用工厂获取的对象是由不同产品的实体产品组成的混合体,这一点使用工厂... 阅读全文
posted @ 2012-05-27 23:37 无风听海 阅读(1275) 评论(0) 推荐(2) 编辑
摘要:跟JBPM学设计模式之工厂方法模式 模式简介 工厂方法模式,定义一个用于创建对象的接口,让子类决定实例化那个类,其使一个类的实例化延迟到其子类中。 前边我们学习了简单工厂模式,简单工厂模式的最大优势在于工厂类中包含了必要逻辑判断,根据客户端的条件动态实例化相关的类,对于客户端不需要了解具体的产品类,所以解除了对具体产品类的依赖。在引入新的产品的时候,我们不需要修改客户端代码,但是必须修改工厂,所以违背了开闭原则。 工厂方法模式是简单工厂模式的进一步抽象和推广。由于工厂类使用多态性,使其即保持了简单工厂模式的优点,也克服了其缺点。在工厂方法模式中,核心的工厂类不再负责所有产品的创建,而... 阅读全文
posted @ 2012-05-24 06:41 无风听海 阅读(1476) 评论(1) 推荐(1) 编辑
摘要:跟JBPM学习设计模式之简单工厂模式模式简介 简单工厂模式是类的创建模式,其专门负责将大量拥有共同接口或者基类的产品类进行实例化。简单工厂模式由工厂类运行时根据传入的参数动态的决定需要实例化的类,这样客户只需要了解产品的基类,解除客户对具体产品类的依赖。简单工厂模式的结构如下图所示图 1. 简单工厂模式结构图 从图中可以看出,简单工厂模式主要涉及一下三种结构角色1. 工厂类,其有客户端直接调用,并根据具体的业务逻辑要求创建相应的产品对象实例;2. 产品基类,所有具体的产品类的基类或者接口,封装所有具体产品共享的行为(和数据), 客户需要了解产品基类;3. 具体的产品类,本模式需要创建的实例的. 阅读全文
posted @ 2012-05-17 02:16 无风听海 阅读(1231) 评论(0) 推荐(0) 编辑
摘要:JBPM与软件架构模式之命令模式 前面我们介绍了JBPM的长事务设计,其中用到了职责链模式和命令模式,其中职责链模式我们已经介绍过了,今天我们来看看JBPM是怎样使用命令模式的。 命令模式定义 将请求封装成一个对象,使你可以使用不同的请求对客户端进行参数化;对请求排队和记录请求队列,并支持对请求的撤销操作。命令模式UML类图 命令模式代码示例 packageorg.jbpm.pvm.internal.svc;publicabstractclassCommand{protectedRecieverreviever;publicCommand(Recieverreviever){this.revi 阅读全文
posted @ 2011-06-28 23:25 无风听海 阅读(1731) 评论(0) 推荐(0) 编辑
摘要:--ThreadLocal分析学习 早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。 ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程”。其实,ThreadLocal并不是一个Thread,而是Thread的局部变量,也许把它命名为ThreadLocalVariable更容易让人理解一些。 当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的 阅读全文
posted @ 2011-06-27 22:34 无风听海 阅读(407) 评论(0) 推荐(0) 编辑
摘要:上篇我们了解并学习了JBPM的长事务实现,其中用到了设计模式中的职责链模式和命令模式;这块还是很有厚重感的,我们可以从中学到很多的东西;今天我们先来学习一下职责链模式。 职责链模式定义 使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系;将这些对象连成一条链,并沿这条链传递该请求,直到有一个对象处理该请求。 职责链模式的优点 1.客户提交一个请求,其沿着这条链传递直到得到处理; 2. 发送者和接受者都没有对方的明确信息信息; 3. 链中对象也不知道链的结构,简化了链中对象的链接关系,它仅需要维持其后继者的引用,而不用持有它所有的候选者; 职责链模式UML图 JBPM职责链. 阅读全文
posted @ 2011-06-26 15:51 无风听海 阅读(945) 评论(0) 推荐(0) 编辑
摘要:单例模式是我们开发中常用的一种设计模式,今天结合JBPM来学习这个模式。本来打算先分析JBPM中的单例模式,然后总结单例模式;但是JBPM的实现并不是完全符合GOF中队单例模式的完成定义,其实现跟自己的业务有一定的关联。那么我们就先来学习严格意义上的单例模式,然后再分析JBPM实现的单例模式。单例模式定义 保证一个类仅有一个实例,并提供一个访问它的全局访问点让类自己负责实例的生成,并提供访问该实例的方法 在我们实际的开发中,很多时候我们需要控制某个类的实例化,并且需要控制其只能实例化一个实例;其中一个最好的方法就是让这个类负责自己的实例化,并且保证不会有其他的实例被创建,同时向外提供一个访问. 阅读全文
posted @ 2011-06-09 00:42 无风听海 阅读(711) 评论(0) 推荐(0) 编辑