Java常用设计模式
kris234seth
这个作者很懒,什么都没留下…
展开
-
Java设计模式----命令模式(Command)
1. 命令模式是一个高内聚的模式,其定义为: 将一个请求封装成一个对象,从而让你用不同的请求把客户端参数化,对请求排队或记录请求日志,可以提供命令的撤销和恢复功能。2. 命令模式中的3个角色 a、 Receiver 接受者或执行者角色 该角色是处理具体业务的角色,命令传递到这里是应该被执行的。 b、 Command 命令角色 需要执行的所有命令原创 2015-11-04 16:27:05 · 369 阅读 · 0 评论 -
Java设计模式----观察者模式(Observer)
1. 观察者模式: 观察者模式,也叫发布/订阅模式,定义如下: 定义对象之间的一种一对多的依赖关系,使得每当一个对象的状态改变时,多有依赖于它的对象都能及时得到通知并被自动更新2. 观察者模式的相关角色介绍: a、 抽象被观察者角色 定义被观察者必须实现的职责,它必须能够动态地添加和取消观察者,一般由抽象类构成。仅完成被观察者的职责:管理原创 2015-10-29 15:36:28 · 418 阅读 · 0 评论 -
Java设计模式----策略模式(Strategy)
1. 策略模式: 策略模式,也称为政策模式,定义如下: 定义一组算法,将每个算法都封装起来,使他们可以相互转化2. 策略模式的原理是面向对象的继承和多态。策略模式的3个角色 a. Strategy 抽象策略角色 定义每个策略或算法都具有的方法和属性。 b. ConcreteStrategy 具体策略角色 实现抽象原创 2015-10-28 15:07:02 · 370 阅读 · 0 评论 -
Java设计模式----模板方法模式(Template Method)
1. 模板方法模式定义: 定义一个操作中的算法的框架,而将一些步骤延迟到子类中。是的子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。2. 模板方法模式的实现很简单,其原理是Java的继承机制,它主要包含2个角色,抽象模板角色和具体模板角色3. 通用示例代码: 抽象模板类: public abstract class AbstractTempl原创 2015-10-29 11:47:12 · 457 阅读 · 0 评论 -
Java设计模式----享元模式(FlyWeight)
1. 享元模式定义: 享元模式是池技术的重要实现原理,定义如下:使用共享对象可以有效的支持大量的细粒度对象 内部状态:存储在享元对象内部不随外部环境改变可以共享出来的信息 外部状态:外部状态是对象得以依赖的一个标记,是随外部环境改变而变化、不可以共享的状态2. 享元模式的角色名称: a. 抽象享元角色 简单地说,就是一个产品的抽原创 2015-10-28 11:55:09 · 442 阅读 · 0 评论 -
Java设计模式----组合模式(Composit )
1. 组合模式定义: 组合模式,又叫合成模式,有时又叫部分-整体模式,主要用来描述部分与整体的关系。 定义:将对象组合成树形结构以示“ 部分--整体 ”的层次结构,使得用户对单个对象的使用具有一致性。2. 组合模式的3个对象: a. Component 抽象构件角色 定义参加组合对象的共有的属性和方法,可以定义一些默认的行为或属性 b.原创 2015-10-27 10:51:49 · 406 阅读 · 0 评论 -
Java设计模式----外观模式(Facade)
1. 外观模式的定义:外观模式,也叫作门面模式,是一种常见的封装模式,要求一个子系统外部与其内部的通信通过一个统一的对象进行。外观模式提供一个高层次的接口,使得子系统更易于使用。外观模式注重“统一的”接口,外部只能通过这个接口来访问子系统,除了这个接口不允许单独访问子系统的行为发生。2. 外观模式的角色说明: --Facade门面角色 此角色知晓子系统的所有原创 2015-10-26 13:56:39 · 382 阅读 · 0 评论 -
Java设计模式---装饰模式(Decorator)
1. 装饰模式(Decorator Pattern)定义: 动态地给一个对象添加额外的职责(功能)。相比生成子类,装饰模式更加灵活。2. 装饰模式中的角色说明: Component抽象角色: Component是一个接口或者抽象类,是我们最原始的对象 ConcreteCompont具体角色: ConcreteCompont是继承或者实现了Componen原创 2015-10-22 14:17:54 · 441 阅读 · 0 评论 -
Java设计模式----单例模式(Singleton)
1. 单例模式的概念 单例模式的意思就是一个类只有一个实例。单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类。2. 关键点: 1) 一个类只有一个实例 2)必须自行创建这个实例 3)自行向系统提供这个实例3. 单例类所包含的关键要素: 1) 私有的构造方法 (避免在外部原创 2015-10-19 15:29:08 · 579 阅读 · 0 评论 -
Java设计模式---工厂方法模式(Factory-Method)
一、普通的工厂模式 建立一个工厂类,对实现了同一接口的一些类进行实例的创建实例代码:发送短信和邮件的例子,首先创建接口:public interface Sender { public void send(); }分别完成实现类:短信发送实现类:public class SmsSender implements Sender{ @Overr转载 2015-10-16 14:53:53 · 584 阅读 · 0 评论 -
Java设计模式---适配器模式(Adapter)
1. 适配器模式(Adapter Pattern)定义: 将一个类的接口转换成客户端所期待的另一个接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作,简单地说:适配器模式就是把一个接口或类转换成其它的接口或类。适配器模式主要分为3类:类的适配器模式、对象的适配器模式、接口的适配器模式2. 类的适配器模式:核心就是:有一个Source类,拥有一个方法,待适配,原创 2015-10-22 10:24:34 · 389 阅读 · 0 评论 -
Java设计模式----状态模式(State)
1. 状态模式的定义: 当一个对象的内在状态改变时,允许其改变行为,这个对象看起来像是改变了其类。状态模式的核心是封装,状态的变更引起了行为的变更。2. 状态模式的角色介绍: a、 抽象状态角色 State 一般是抽象类或者接口,负责对象状态的定义,并且封装环境角色以实现状态的切换。 b、 具体状态角色 ConcreteState原创 2015-11-06 16:14:25 · 384 阅读 · 0 评论 -
Java设计模式----代理模式(Proxy)
1. 代理模式简介:代理模式是常用的Java 设计模式,它的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。按照代理类的创建时期,代理类可分为静态代理和动态代理原创 2015-10-21 14:29:37 · 544 阅读 · 0 评论 -
Java设计模式----建造者模式(Builder)
1.定义: 将一个复杂对象的创建与它的表示分离,这样可以使得同样的创建方式来构建不同的表示2. 建造者模式通常包含4中元素: 1. Builder :抽象的接口,称为抽象建造者,用来规范产品各个组成部分的构建。这个接口之复杂对象组成部分的构建,并不涉及具体对象部件的创建 2. ConcreteBuilder : 实现Builder接口,称为具体建造者,具体化产品各原创 2015-10-20 11:35:12 · 795 阅读 · 0 评论 -
Java设计模式---原型模式(Prototype)
1. 原型模式(Prototype)定义: 用原型实例指定创建对象的种类,并且通过拷贝这些原型得到行的实例2. 实现方式: 实现Cloneable接口。在java语言有一个Cloneable接口,它的作用只有一个,就是在运行时通知虚拟机可以安全地在实现了此接口的类上使用clone方法。在java虚拟机中,只有实现了这个接口的类才可以被拷贝,否则在运行时会抛原创 2015-10-20 17:47:10 · 610 阅读 · 0 评论 -
Java设计模式----备忘录模式(Memento)
1. 备忘录模式的定义: 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可以将该对象恢复到原先的状态。通俗的说,备忘录模式就是一个对象的备份模式,提供了一种程序数据的备份方法。2. 备忘录模式的3个角色: a、 Originator 角色类(发起人) 记录当前时刻的内部状态,负责定义那些事属于备份范围的状态,负责创原创 2015-11-05 15:08:28 · 435 阅读 · 0 评论 -
Java设计模式----责任链模式(Chain of Responsibility)
1. 责任链模式: 定义:使多个对象都能处理请求,从而避免了请求的发送者和接受者之间的耦合关系,将这些对象连成一个链,并沿着这条链传递该请求,直到有对象能处理它为止。2. 责任链模式的角色介绍: a. 抽象处理者:抽象的处理者实现三个职责:一是定义一个请求的处理方法,唯一对外开放的方法;二是定义一个链的编排方法,设置下一个处理者;三是定义了具体的请求者必须实现的方法原创 2015-10-30 11:03:32 · 671 阅读 · 0 评论