
设计模式
tianxiaoqi2008
这个作者很懒,什么都没留下…
展开
-
策略模式
一、概念策略模式(Strategy):它定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法的变化不会影响到使用算法的客户。(原文:The Strategy Pattern defines a family of algorithms,encapsulates each one,and makes them interchangeable. Strate转载 2012-02-10 14:41:00 · 308 阅读 · 0 评论 -
依赖倒置原则
本文译自Robert C. Martin于1996年发表的文章,将分为三部分贴在这里。原文可参看http://www.objectmentor.com/resources/articles/dip.pdf。这是我给《C++报导》“工程笔记”专栏的第三篇文章。这个专栏的文章专注于C++和OOD的使用,及软件工程方面的问题。我将努力写一些编程方面的,对处在战壕中的软件工程师直接有用的文章。这些转载 2012-02-10 14:40:09 · 396 阅读 · 0 评论 -
Java设计模式简单介绍
Java设计模式有23种,这些设计模式可以分为三大类:创建型模式、结构型模式、行为型模式。创建型模式:抽象工厂模式、建造者模式、工厂方法、原型模式、单例模式。结构型模式有:适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式、代理模式行为型模式:观察者模式、模板方法模式、命令模式、状态模式、职责链模式、解释器模式、中介者模式、访问者模式、策略模式、备忘录模式、迭代器模式转载 2012-02-22 10:23:10 · 417 阅读 · 0 评论 -
Adapter模式
GOF《设计模式》一书对Adapter模式是这样描述的: 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使原本由于接口不兼容而不能一起工作的类可以一起工作。 这段话大致是说:我们需要一种方式,为一个功能正确但接口不合的对象创建一个新接口。例如,客户给我们如下需求:1) 为都有“显示”(display)行为的点、线、正方形分别创建类。2) 客户对转载 2012-02-22 10:35:47 · 285 阅读 · 0 评论 -
Decorator模式
一、应用场景:假设我们已经存在这样的一个程序:1).该程序从一个列表中拿出所有的用户名单,然后逐个向用户发送一句信息。2).现在我们又增加了一个新的需求:在发送之前检查一下该用户是否存在于黑名单中,如果是的话则不发送给该用户。3).是否进行检查则动态根据用户的当时需要来决定。二、需求分析:从上面的情况分析,如果我们采用继承的方式,重新编写一个带有过滤功能的发转载 2012-02-22 11:11:24 · 394 阅读 · 0 评论 -
COMMAND 模式
COMMAND 模式——《敏捷软件开发 原则、模式与实践(c#版)》第21章描述 COMMAND模式是最简单、最优雅的模式之一。 如图1-1所示,COMMAND模式简单的几乎可笑。该模式仅由一个具有唯一方法的接口组成,这似乎很荒谬?代码1-1 给出了图1-1对应的代码。 图1-1 COMMAND 模式代码清单 1-1 Co转载 2012-02-20 18:37:11 · 1562 阅读 · 0 评论 -
Template Method Pattern 模版方法模式
今天我要在这里介绍的是C#设计模式中的模版方法模式。 问题:现在有一家汽车生产商需要一个管理汽车生产的管理软件。其中在该系统中有一个管理组装汽车的子模块。该模块要能根据不同的汽车类型来组装相应的汽车。汽车的被组装部分分别是汽车的车盖,车地盘,后备箱,车胎。现在来试着实现下该过程。 根据上面的描述,我在这里选择里跑车和商务车来进行演示。跑车的车盖,车地盘,后备箱,车胎均转载 2012-02-20 17:38:00 · 1022 阅读 · 0 评论 -
策略模式-6(研磨设计模式)
3.4 策略模式结合模板方法模式 在实际应用策略模式的过程中,经常会出现这样一种情况,就是发现这一系列算法的实现上存在公共功能,甚至这一系列算法的实现步骤都是一样的,只是在某些局部步骤上有所不同,这个时候,就需要对策略模式进行些许的变化使用了。 对于一系列算法的实现上存在公共功能的情况,策略模式可以有如下三种实现方式:一个是在上下文当中实现公共功能,转载 2012-02-20 17:39:13 · 468 阅读 · 0 评论