随笔分类 - 设计模式
责任链模式
摘要:意图: 减少发送请求的sender 和 receiver 之间的耦合性, 通过给每个handler一个机会来处理这个请求. 把请求沿着handler的chain传下去, 直到有handler来处理它. 应用: 1. 有多个handler想要处理这个请求, 这个handler事先是不知道的, 在传递过
阅读全文
代理模式
摘要:代理模式的意图: 为一个对象留了一个占位的对象或代理来获取和控制这个对象.代理模式的应用场景: 1.一个代理可以代表一个不处于同一位置的对象 2.一个代理通过被代理对象来一些消耗很大的操作. 3.一个保护代理,可以来控制对一个对象的访问权限.典型的应用场景: 1.对另一个对象进行控制和获取. 2.惰
阅读全文
命令模式
摘要:command模式: 目的:把一个请求封装成一个对象,因此可以让你给一个clinet配置很多不同的请求. 适应场景: 1.为一个对象配置一些行为.command模式是面向对象编程中对callback函数的一个替换. 2.一个command的生命周期和client无关.所以,你可以把一个receive
阅读全文
Java之命令模式(Command Pattern)
摘要:转自:http://www.cnblogs.com/devinzhang/archive/2012/01/06/2315235.html 1.概念 将来自客户端的请求传入一个对象,从而使你可用不同的请求对客户进行参数化。用于“行为请求者”与“行为实现者”解耦,可实现二者之间的松耦合,以便适应变化。分
阅读全文
命令模式在MVC框架中的应用
摘要:转自:http://blog.csdn.net/wsh622827/article/details/4759368 命令模式: 定义:把一个请求或者操作封装在命令对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。 Invoker类 被客户
阅读全文
适配器模式
摘要:适配器模式的意图: 将一个类的接口转化成客户所期望的接口,适配器使得那些因为接口不兼容的类可以在一起工作.适配器模式的应用: 1.你想要使用一个已经存在的类,但是它的接口和你需要的接口并不匹配. 2.你想要创建一个可以复用的类,但是它所使用的的类是不可以预见的,也就是所,那些使用到的具体的实现类不用
阅读全文
装饰者模式
摘要:装饰者模式的意图: 装饰者模式是为了很灵活的动态的去给一个对象增加额外的功能.应用场景: 1.是为了在不影响原有的类对象的情况下对类对象的功能进行扩展.而且扩展的功能还可以被取消. 2.还有一些场景很适合装饰者模式,就是当我们为了扩展一个类的功能而不断的去实现它的子类的时候,可能会出现子类的剧增,或
阅读全文
责任链模式
摘要:1.责任链模式的意图: 为了避免把一个信息的发送者和接受者绑定起来,而且可以把一个请求发给不止一个对象去处理.所以把所有的接受者串在一起,然后沿着这条链来发送信息.2.责任链模式的应用场景: a.当你想要发布一个请求,但是不想明确的指定接受者. b.可以接受这个请求的对象会动态的变化. c.不止一个
阅读全文
设计模式
摘要:2. 软件设计模式的分类 2.1. 创建型 创建对象时,不再由我们直接实例化对象;而是根据特定场景,由程序来确定创建对象的方式,从而保证更大的性能、更好的架构优势。创建型模式主要有简单工厂模式(并不是23种设计模式之一)、工厂方法、抽象工厂模式、单例模式、生成器模式和原型模式。 2.2. 结构型 用
阅读全文
观察者模式
摘要:观察者模式: 定义了一种一对多的依赖关系,当一个对象改变状态时,所有依赖它的对象都会被通知到,然后自动的去更新.使用的场景: 1.当一个对象的改变会要求其他关系的改变,但你不知道有但是对象需要改变. 2.当你的抽象逻辑有俩个方面,一个方面会依赖另一个方面的时候. 3.当你不想让这个对象之间的关系太紧
阅读全文
策略模式
摘要:策略者模式的目的就是在封装了一系列的功能或算法,供外界去调用,而外界对这些都感受不到.应用的场景是: 可以为一个类提供一系列的不同的算法或者是行为方式,而这些算法和行为方式是有相关性的.这样就避免了创建一系列的相关的类,只用一个就搞定了,而且外界在调用的时候并不会感知到这个类的内部的复杂性. 然后就
阅读全文
类与类之间的几种关系
摘要:转自:http://www.cnblogs.com/liuling/archive/2013/05/03/classrelation.html 一、继承关系 继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。在Java中继承关系通过关键字
阅读全文
设计模式-builder模式
摘要:转自:http://blog.csdn.net/hguisu/article/details/7518060 1. 概述 在软件开发的过程中,当遇到一个“复杂的对象”的创建工作,该对象由一定各个部分的子对象用一定的算法构成,由于需求的变化,复杂对象的各个部分经常面临剧烈的变化,但将它们组合在一起的算
阅读全文