随笔分类 -  设计模式

摘要:本文以项目中的一个工作流模块,演示责任链模式、策略模式、命令模式的组合实现!流程简介最近在做的一个项目,涉及到的是一个流程性质的需求。关于工程机械行业的服务流程:服务任务流程和备件发运流程。项目之初,需求不是很清晰,算是演化模型吧。先出一个简单版本,然后根据用户的使用情况,再进一步探测新需求。所以也就是说这两个流程中的每一步暂时都不是固定的,而应该是可配置、可增减的。目前暂定的两个流程示意图如下: 以上为两个流程的大致过程,当然实际过程中,可能还要走其他的流程。但是,仔细分析,你会看到。不管有多少个中间步骤,它们始终都对应着它们在该流程中所处的状态:/// <summary> .. 阅读全文
posted @ 2012-01-07 10:51 程序员天下 阅读(679) 评论(0) 推荐(0) 编辑
摘要:好东西不得不转在网上看见了这篇文章,作者以轻松的语言比喻了java的32种模式,有很好的启发作用。 创建型模式 1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。2、BUILDER—MM最爱听的就是“我爱你”这句话了,见到不同地方的MM,要能够用她 阅读全文
posted @ 2010-02-22 19:57 程序员天下 阅读(198) 评论(0) 推荐(0) 编辑
摘要:抽象工厂的适用条件:在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作;同时,由于需求的变化,往往存在更多系列对象的创建工作。提供一个接口,让该接口负责创建一系列“相关或者相互依赖的对象”,无需指定它们具体的类。 ——《设计模式》GoF一个Abstract Factory的应用实例: //道路 public abstract class Road { } //建筑 public abstract class Building { } //地道 public abstra... 阅读全文
posted @ 2010-02-07 23:58 程序员天下 阅读(197) 评论(0) 推荐(0) 编辑
摘要:应用场景:在软件系统中,经常有这样一些特殊的类,必须保证它们在系统中只存在一个实例,才能确保它们的逻辑正确性、以及良好的效率。这是类设计者的责任,而不是使用者的责任。保证一个类仅有一个实例,并提供一个该实例的全局访问点。 ——《设计模式》GoF代码实现如下://单线程Singleton示例: public class Singleton { private static Singleton instance; public static Singleton Instance { get { ... 阅读全文
posted @ 2010-02-07 16:23 程序员天下 阅读(191) 评论(0) 推荐(0) 编辑
摘要:设计模式描述了软件设计过程中某一类常见问题的一般性的解决方案。面向对象设计模式描述了面向对象设计过程中、特定场景下、类与相互通信的对象之间常见的组织关系。示例场景:我们需要设计一个人事管理系统,其中的一个功能是对各种不同类型的员工,计算其当月的工资——不同类型的员工,拥有不同的薪金计算制度。结构化做法1。获得人事系统中所有可能的员工类型2。根据不同的员工类型所对应的不同的薪金制度,计算其工资enum EmployeeType{Engineer;Sales;Manager;…}// 计算工资程序If ( type==EmployeeType.Engineer) {……}else if (type 阅读全文
posted @ 2010-02-03 21:58 程序员天下 阅读(159) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示