Java设计模式
王俊凯夫人
这个作者很懒,什么都没留下…
展开
-
Java 设计模式之模板方法模式的详解(行为模式)
模板方法模式的具体概念:一个抽象类中,有一个主方法,再定义1.....n个方法,可以是抽象的,也可以是实际的方法,定义一个类,继承该抽象类,重写抽象方法,通过调用抽象类,实现对子类的调用,先看个关系图:模版方法模式有两个角色:1、抽象模版(Abstract Template)角色:定义了一个或多个抽象操作,同时定义了一个模版方法,它是一个具体的方法,作为抽象模版的骨架。实际原创 2016-08-03 23:06:18 · 423 阅读 · 0 评论 -
Java 设计模式之抽象工厂模式的详解(创建模式)
抽象工厂模式(Abstract Factory)是工厂方法里面最为抽象和最具一般性的形态,是指当有多个抽象角色时,使用的一种工厂模式。抽象工厂模式概念:可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象。抽象工厂模式和工厂方法模式的最大区别在于,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式则需要面对多个产品族,从而使得产品具有二维性质。原创 2016-07-30 16:30:31 · 437 阅读 · 0 评论 -
Java 设计模式之工厂方法模式的详解(创建模式)
工厂方法模式(Factory Method)又称虚拟构造子模式,可以说是简单工厂的抽象,也可以理解为简单工厂是退化了的工厂方法模式,其表现在简单工厂丧失了工厂方法的多态性。我们前一节中提到当产品结构变的复杂的时候,简单工厂就变的难以应付,如果增加一种产品,核心工厂类必须改动,使得整个工厂的可扩展性变得很差,对开闭原则支持不够。工厂方法模式克服了这些缺点,它定义一个创建产品对象的工厂接口,将实际创建原创 2016-07-30 15:48:32 · 337 阅读 · 0 评论 -
Java 设计模式之简单工厂模式的详解(创建模式)
简单工厂模式就是由一个工厂类根据传入的参量决定创建出哪一种产品类型的实例。工厂模式的一般性结构如下图:下面我们拿实例来介绍简单工厂模式。建立了一个工厂类,对实现了同一接口的一些类进行实例的创建~首先看下关系图:举例如下:我们举一个发送短信和邮件的例子首先,创建二者的共同接口-Sender:public interface Sender { pub原创 2016-07-30 15:18:54 · 533 阅读 · 0 评论 -
Java 设计模式之观察者模式的详解(行为模式)
观察者(Observer)模式:是对象的行为模式,又叫做发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听(Source/Listener)模式或者从属(Dependents)模式。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。观察者原创 2016-08-06 13:41:37 · 491 阅读 · 0 评论 -
Java设计模式之责任链模式的详解(行为模式)
责任链(Chain of Responsibility)模式:责任链模式是对象的行为模式。使多个对象都有机会处理请求,从而避免请求的发送者和接受者直接的耦合关系。将这些对象连成一条链,沿着这条链传递该请求,直到有一个对象处理它为止。责任链模式强调的是每一个对象及其对下家的引用来组成一条链,利用这种方式将发送者和接收者解耦,类图如下:通过上图可以看出责任链模式有两个角色:抽象处理原创 2016-08-06 14:18:56 · 476 阅读 · 0 评论 -
Java 设计模式之命令模式的详解(行为模式)
命令(Command)模式:又称Action模式或者Transaction模式。它属于对象的行为模式。命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和撤销功能。GoF命令模式结构图如下:命令模式是有以下角色:抽象命令(Command)角色:声明执行操作的接口。具体命令(Conc原创 2016-08-06 16:22:01 · 492 阅读 · 0 评论 -
Java 设计模式之备忘录模式的详解(行为模式)
备忘录(Memento)模式:又叫做快照模式(Snapshot Pattern)或Token模式,属于行为模式。在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。备忘录模式有如下结构图:备忘录模式涉及角色如下:发起人(Originator):负责创建一个备忘录Memento,用以记录当前时刻自身的内部状态,并原创 2016-08-06 16:54:12 · 452 阅读 · 0 评论 -
Java 设计模式之状态模式的详解(行为模式)
状态(state)模式:状态模式的意图是,允许一个对象在其内部状改变时改变它的行为。看起来就像是改变了它的类一样。主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同的一系列类当中,可以把复杂的逻辑判断简单化。状态模式的结构如下图:从图中可以看出状态模式有以下角色:1、抽象状态(State)角色:定义一个接口,用以封装环境对象的一个原创 2016-08-06 17:12:01 · 862 阅读 · 0 评论 -
Java 设计模式之单例模式的详解(创建模式)
单例模式(Singleton)是指确保一个类有且仅有一个实例,而且自行实例化并向整个系统提供这个实例。这个类我们也称它为单例类。单例模式的使用在现实世界里很多,比如我们常见的打印机打印的作业队列,一个没打印完,那么只有在队列等待;windows回收站,windows视窗里回收站有且只有一个实例。单例模式的目的就是有且只提供一个实例,所以它有一下几个特点:1、单例类只能有一个实例;2原创 2016-07-30 17:38:29 · 473 阅读 · 0 评论 -
Java 设计模式之建造者模式的详解(创建模式)
建造模式(Builder)是对象的创建模式,建造模式可以将一个产品的内部表象与产品的生产过程分割开来,从而可以是建造过程生成具有不同内部表象的产品对象。一个产品常有不同的组成成分作为产品的零件,这些零件有可能是对象,也有可能不是对象,通常我们称作内部表象,不同的产品可以有不同的内部表象,也就是不同的零件。使用建造模式可以使客户端不需要知道所生成的产品有那些零件,每个产品对应的零件彼此有何不同,是怎原创 2016-07-30 18:16:56 · 364 阅读 · 0 评论 -
Java 设计模式之组合模式的详解(结构模式)
组合模式(Composite)就是把部分和整体的关系用树形的结构来表示,从而使客户端能够把部分对象和组合起来的对象采用同样的方式来看待。树图结构一般包含一个根节点,若干个树枝和叶子节点。如下图:可以用一个类图描述树结构的静态结构,把根节点当做树枝节点来描述,同时和叶子节点具有共同的父类:树结构的类图,其实就是组合模式的简略类图,最上面为抽象节点,左下方为叶子节点,右原创 2016-07-31 13:17:01 · 520 阅读 · 0 评论 -
Java 设计模式之策略模式的详解(行为模式)
行为模式有11种~先来看张图,看看这11种模式的关系。说说策略模式吧~策略(Strategy)模式:又名Policy,它的用意是定义一组算法,把它们一个个封装起来,并且使他们可以相互替换。策略模式可以独立于使用他们的客户端而变化。GOF策略模式静态结构类图如下:通过上图可以看出策略模式有以下角色构成:1、抽象策略(Strategy)角色:抽象策略原创 2016-08-01 21:26:17 · 499 阅读 · 0 评论 -
Java 设计模式之桥接模式的详解(结构模式)
桥接模式就是把事物和其具体实现分开,使它们可以各自独立的变化。桥接的用意是:将抽象化与实现解耦,使得二者可以独立变化,像我们常用的JDBC桥DriverManager一样,JDBC进行连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不用动,原因就是JDBC提供统一接口,每个数据库提供各自的实现,用一个叫做数据库驱动的程序来桥接就行了。桥接模式的示意性结构类图原创 2016-07-31 21:08:13 · 361 阅读 · 0 评论 -
java 设计模式之外观模式的详解(结构模式)
外观模式是为了解决类与类之间的依赖关系的,像Spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放到一个Facade类中,降低了类与类之间的耦合度,该模式中没有涉及到接口,看下类图:(我们以一个计算机的启动过程为例)我们先看下实现类:public class Cpu { public void startup(){ System.out.pr原创 2016-07-31 20:07:58 · 340 阅读 · 0 评论 -
Java 设计模式之享元模式的详解(结构模式)
享元模式的主要目的是实现对象的共享,即共享池,当系统中对象多的时候可以减少内存的开销,通常与工厂模式一起使用享元模式的角色有:抽象享元(Flyweight)角色:是给实现享元提供的接口。具体享元(ConcreteFlyweight)角色:实现抽象角色,此对象必须是共享的,所含的状态必须是内部状态。不共享享元(UnSharedConcreteFlyweight)角色:此对象不可共原创 2016-07-31 18:26:07 · 658 阅读 · 0 评论 -
Java 设计模式之代理模式的详解(结构模式)
其实每个模式名称就表明了该模式的作用,代理模式就是多一个代理类出来,替源对象进行一些操作,比如我们在租房子的时候会去找中介,为什么呢?因为你对该地区房屋的信息掌握的不够全面,希望一个更熟悉的人去帮你做,此处的代理就是这个意思。再如我们有的时候打官司,我们需要请律师,因为律师在法律方面有专长,可以替我们进行操作,表达我们的想法。代理(proxy)模式:指目标对象给定代理对象,并由代理对象代替真实原创 2016-07-31 15:42:44 · 401 阅读 · 0 评论 -
Java 设计模式之装饰模式的详解(结构模式)
装饰(Decorator)模式属于设计模式里的结构模式,通过装饰类动态的给一个对象添加一些额外的职责。装饰模式也叫包装(wrapper)模式。装饰模式有如下的角色:抽象构件(component)角色:这个角色用来规范被装饰的对象,一般用接口方式给出。具体构件(concrete component)角色:被装饰的类。装饰(decorator)角色:持有一个构件对象的实例。并定义一个跟抽象原创 2016-07-31 14:50:59 · 400 阅读 · 0 评论 -
Java 设计模式之适配器模式的详解(结构模式)
适配器(adapter)模式,把一个类的接口变成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。适配器模式有三种形式,类的适配器模式,对象的适配器模式和接口的适配器模式。1.类的适配器模式类的适配器模式有以下角色:目标(Target)角色:是期待得到的接口类型。这里谈类的适配器模式所以这个不能是类,原因是java单继承。源(adaptee原创 2016-07-31 13:39:22 · 477 阅读 · 0 评论 -
Java 设计模式之原型模式的详解(创建模式)
原型模式虽然是创建型的模式,但是与工程模式没有关系,从名字可以看出,该模式的思想就是将一个对象作为原型,对其进行复制,克隆,产生一个和原对象类似的新对象。我们先来看一下原型模式的模型:原型模型涉及到三个角色:客户角色(client):客户端提出创建对象的请求;抽象原型(prototype):这个往往由接口或者抽象类来担任,给出具体原型类的接口;具体原型(Conc原创 2016-07-31 12:53:14 · 400 阅读 · 0 评论 -
Java 设计模式之访问者模式的详解(行为模式)
访问者(Visitor)模式:封装一些作用于某种数据结构中的各元素的操作,它可以在不改变这个数据结构的前提下定义作用于这些元素的新的操作。访问者模式的结构图如下:通过上图可以看到它有如下角色:抽象访问者(Visitor)角色:定义接口,声明一个或多个访问操作。具体访问者(ConcreteVisitor)角色:实现抽象访问者所声明的接口,也就是抽象访问者所声明的各个访问操原创 2016-08-06 17:48:33 · 483 阅读 · 0 评论