摘要:
定义:他定义了算法家族,分别封装起来,让他们之前可以相互替换,此模式让算法的变化,不影响到使用算法的客户。结构图:如下所示优点:1、策略模式是一种定义一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,他可以以相同的方式调用所有的算法,减少各种算法类与使用算法类之间的耦合。(高内聚、低耦合)2、策略模式的Strategy类层次为Context定义了一些列的可重用的算法或行为。继承有助于取出这些算法的公共功能。3、简化了单元测试。因为么个算法都有自己的类,它可以通过自己的接口单独测试。4、使用Strategy可以消除大量的条件语句。使系统更灵活,并已于扩展。5、设计原 阅读全文
随笔分类 - 设计模式
设计模式学习笔记(2)之装饰模式(Decorator)
2013-04-22 17:55 by 追梦网络, 1074 阅读, 收藏, 编辑
摘要:
作用:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生产子类更为灵活。结构图:客户端调用:利用SetComponent来对对象进行包装。把每个装饰对象的实现和使用这个对象分立开,每个装饰对象只关心自己的功能,不需要关心对象如何被添加到对象连当中(DPE)。适用性在以下情况下应当使用装饰模式:1.需要扩展一个类的功能,或给一个类增加附加责任。2.需要动态地给一个对象增加功能,这些功能可以再动态地撤销。3.需要增加由一些基本功能的排列组合而产生的非常大量的功能,从而使继承关系变得不现实。模式总结: 1、装饰模式是为已有功能动态地添加更多功能的一种方式。2、当系统需要新功能的时候,是 阅读全文
Java开发中的23种设计模式详解
2013-04-16 12:44 by 追梦网络, 809 阅读, 收藏, 编辑
摘要:
设计模式(Design Patterns) ——可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代 码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用 设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决 方案,这也是它能被广泛应用的原因。本章系Java之美[ 阅读全文
面向对象的5条基本设计原则
2013-03-28 17:36 by 追梦网络, 301 阅读, 收藏, 编辑
摘要:
最基本的设计原则有5条,分别是:单一职责原则、开放封闭原则、依赖倒置原则、接口隔离原则和Liskov替换原则。 单一职责原则 对于单一职责原则,其核心思想为:一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。职责过多,可能引起它变化的原因就越多,这将导致职责依赖,相互之间就产生影响,从而大大损伤其内聚性和耦合度。通常意义下的单一职责,就是指只有一种单一功能,不要为类实现过多的功能点,以保证实体只有一个引起它变化的原因。 专注,是一个人优良的品质;同样的,单一也是一个类的优... 阅读全文
设计模式学习笔记(1)之单例模式
2013-03-27 17:28 by 追梦网络, 214 阅读, 收藏, 编辑
摘要:
意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。模型:特点:单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其它对象提供这一实例。应用:每台计算机可以有若干个打印机,但只能有一个Printer Spooler,避免两个打印作业同时输出到打印机。一个具有自动编号主键的表可以有多个用户同时使用,但数据库中只能有一个地方分配下一个主键编号。否则会出现主键重复。要点1、 Singleton模式是限制而不是改进类的创建。2、 Singleton类中的实例构造器可以设置为Protected以允许子类派生。3、 Singleton模式一般不要支持Icloneable接口, 阅读全文