
——【设计模式】
文章平均质量分 87
白衣染霜陈
你只管努力,剩下的交给时光。
展开
-
【设计模式】—-(20)状态模式(行为型)
一、定义(概念)允许一个对象在其内部状态改变的时候改变其行为。看上去就像是改变了它的类一样。二、适用场景一个对象的行为取决于他的状态,并且它必须在运行时根据状态改变它的行为;一个操作中含有庞大的多分支结构,并且这些分支决定于对象的状态。涉及角色: ● 环境(Context)角色,也成上下文:定义客户端所感兴趣的接口,并且保留一个具体状原创 2017-02-04 23:01:32 · 403 阅读 · 0 评论 -
【设计模式】—-(8)装饰模式(结构型)
意图:动态的将责任附加到对象上什么时候使用:1.在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责2.处理那些可以撤销的职责3.当不能采用生成子类的方式进行扩充时结构图:示例代码:1 package com.test.patten.decorator;2 3 public interface Person {4 void doC原创 2017-01-20 23:39:02 · 361 阅读 · 0 评论 -
【设计模式】—-(9)组合模式(结构型)
组合模式:组合模式又叫部分-整体模式,它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以向处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解藕.组合模式可以优化处理递归或分级数据结构.有许多关于分级数据结构的例子,使得组合模式非常有用武之地.1.定义: 将对象组合成树形结构以表示“部分整体”的层次结构。组合原创 2017-01-21 22:22:13 · 411 阅读 · 0 评论 -
【设计模式】—-(10)外观模式(结构型)
设计模式--外观模式Facade(结构型):1. 定义 外观模式,我们通过外观的包装,使应用程序只能看到外观对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度,并且提高了程序的可维护性。例子1:一个电源总开关可以控制四盏灯、一个风扇、一台空调和一台电视机的启动和关闭。该电源总开关可以同时控制上述所有电器设备,电源总开关即为该系统的外观模式设计。原创 2017-01-22 11:29:26 · 499 阅读 · 0 评论 -
【设计模式】—-(11)享元模式(结构型)
享元(Flyweight)模式:Flyweight在拳击比赛中指最轻量级,即“蝇量级”或“雨量级”,这里选择使用“享元模式”的意译,是因为这样更能反映模式的用意。享元模式是对象的结构模式。享元模式以共享的方式高效地支持大量的细粒度对象。Java中的String类型 在JAVA语言中,String类型就是使用了享元模式。String对象是final类型,对象一旦创建原创 2017-01-23 14:10:27 · 510 阅读 · 3 评论 -
【设计模式】—-(12)代理模式(结构型)
这篇文章挺有意思的,是男人应该都能理解吧。(捂嘴:))代理模式理解应该很简单,就是现实中的中介,相信大家都租过房子,撸主上学那会其实就很鄙视中介,看其他同学都找中介很快搞定房子,而露珠呢,宁可自己去走街串巷一个一个联系,也不愿意出中介费。现在想想真好笑哈。好了言归正转1,什么是代理模式?代理模式有什么好处?代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访原创 2017-01-24 10:53:21 · 595 阅读 · 0 评论 -
【设计模式小结】—-结构型模式
结构型模式描述如何组织类和对象以组成更大的结构。结构型类模式采用继承机制来组合接口和实现,结构型对象模式则采用组合聚合来组合对象以实现新功能,可以在运行时刻改变对象组合关系,具有更大灵活性,故这里只关注结构型对象模式。一般常见的结构型模式有7种:ABCDFFP(Adapter,Bridge,Composite,Decorator,Façade,Flyweight,Proxy原创 2017-01-25 13:15:11 · 823 阅读 · 2 评论 -
【设计模式】—-(13)模板方法模式(行为型)
定义:定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法中的某些特定步骤。模板方法模式相对而言比较简单,一般的都是由抽象类定义好模板方法,然后,子类通过继承并实现其父类中定义好的模板中需要执行的具体的方法,调用子类对象的模板方法时,会执行该类中的具体实现的方法。这个模式我个人的感觉有点像是面向过程的操作,执行完一道工原创 2017-01-26 14:34:37 · 692 阅读 · 0 评论 -
【设计模式】—-(15)迭代器模式(行为型)
迭代器模式定义迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。迭代器模式的角色构成(1)迭代器角色(Iterator):定义遍历元素所需要的方法,一般来说会有这么三个方法:取得下一个元素的方法next(),判断是否遍历结束的方法hasNext()),移出当前对象的方法remove(),(2)具体迭代器角色(C原创 2017-01-28 23:32:41 · 383 阅读 · 0 评论 -
【设计模式】—-(14)命令模式(行为型)
意图:将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化;对请求排队或记录日志,以及支持可撤销的操作动机:将”发出请求的对象”和”接收与执行这些请求的对象”分隔开来。效果:1)、command模式将调用操作的对象和实现该操作的对象解耦2)、可以将多个命令装配成一个复合命令,复合命令是Composite模式的一个实例3)、增加新的command很容易,无需改变已有的类原创 2017-01-27 23:47:57 · 558 阅读 · 0 评论 -
【设计模式】—-(16)观察者模式(行为型)
对自己说声对不起:大年初二去姥姥家玩了,所以迟更新了一天,罪过。。。一、概述:观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。二、观察者模式所设计的角色: ● 抽象主题(Subject)角色:抽象主题角色把所有对观察者对象的引用保存在一个聚集(比如A原创 2017-01-30 22:14:05 · 636 阅读 · 2 评论 -
【设计模式】—-(17)中介者模式(行为型)
中介者模式:一、概念: 所谓中介者模式就是用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 通过定义我们可以看出中介者主要是通过中介对象来封装对象之间的关系,使之各个对象在不需要知道其他对象的具体信息情况下通过中介者对象来与之通信。同时通过引用中介者对象来减少系统对象之间关系,提原创 2017-01-31 23:52:35 · 730 阅读 · 0 评论 -
【设计模式】—-(18)备忘录模式(行为型)
备忘录模式(Token)一、定义在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。二、适用场景适合于功能比较复杂,但需要维护或记录属性历史的功能。参与者: Originator(发起人):负责创建一个备忘录Memento,用以记录当前时刻自身的内部状态,并可使用备忘录恢复内部状态。O原创 2017-02-01 23:06:22 · 693 阅读 · 0 评论 -
【设计模式】—-(7)桥接模式(结构型)
桥接(Bridge)模式是用于把抽象化与实现化解耦,使得二者可以独立变化。属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。我们通过下面的实例来演示桥接模式(Bridge Pattern)的用法。其中,可以使用相同的抽象类方法但是不同的桥接实现类,来画原创 2017-01-19 13:45:36 · 388 阅读 · 0 评论 -
【设计模式】—-(6)适配器模式(结构型)
首先,先来先讲讲适配器。适配就是由“源”到“目标”的适配,而当中链接两者的关系就是适配器。它负责把“源”过度到“目标”。举个简单的例子,比如有一个“源”是一个对象人,他拥有2种技能分别是说日语和说英语,而某个岗位(目标)需要你同时回说日语、英语、和法语,好了,现在我们的任务就是要将人这个“源”适配的这个岗位中,如何适配呢?显而易见地我们需要为人添加一个说法语的方法,这样才能满足目标的需要。原创 2017-01-18 00:15:53 · 389 阅读 · 0 评论 -
【设计模式】—-(21)策略模式(行为型)
一、定义(概念)策略模式,又叫算法簇模式,就是定义了不同的算法族,并且之间可以互相替换,此模式让算法的变化独立于使用算法的客户。或者说是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:“准备一组算法,并将每一个算法封装起来,使得它们可以互换”原创 2017-02-05 23:12:43 · 441 阅读 · 0 评论 -
【设计模式】—-(3)抽象工厂模式(创建型)
定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。类型:创建类模式类图:抽象工厂模式代码[java] view plain copyinterface IProduct1 { public void show(); } interface IProdu原创 2017-01-12 23:53:50 · 590 阅读 · 0 评论 -
【设计模式】—-(4)建造者模式(创建型)
首先来看定义:工厂模式:定义一个用于创建对象的借口,让子类决定实例化哪一个类。抽象工厂模式:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。前者是让子类决定实例化某个具体的类,后者是无需指定具体的类。定义上区别很明显,也许理解起来有点抽象,举个具体的栗子:工厂创建一种产品,抽象工厂创建的是一组产品,是一个产品系列。这里要注意的是“系原创 2017-01-15 22:09:31 · 509 阅读 · 0 评论 -
【设计模式】—-(抽象工厂模式和工厂方法模式区别)
首先来看定义:工厂模式:定义一个用于创建对象的借口,让子类决定实例化哪一个类。抽象工厂模式:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。前者是让子类决定实例化某个具体的类,后者是无需指定具体的类。定义上区别很明显,也许理解起来有点抽象,举个具体的栗子:工厂创建一种产品,抽象工厂创建的是一组产品,是一个产品系列。这里要注意的是“系原创 2017-01-15 21:49:50 · 628 阅读 · 0 评论 -
【设计模式】—-(22)责任链模式(行为型)
一、定义(概念)使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。二、适用场景1 有多个的对象可以处理一个请求,哪个对象处理该请求运行时刻自动确定。2 你想在不明确指定接受者的情况下,想过个对象中的一个提交一个请求。3 可处理一个请求的对象集合应该被动态指定。原创 2017-02-06 22:40:32 · 725 阅读 · 0 评论 -
【设计模式】—-(23)访问者模式(行为型)
今天来看最后一个设计模式——-访问者模式(行为型) ——瞬间有一种忽如一夜春风来的感觉,明天总结下设计模式行为型的小结,然后再做个所有设计模式的总结。一、定义(概念)表示一个作用于某对象结构中的各元素的操作。使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。二、适用场景1、一个对象结构包含很多类对象,它们有不同的接口,而你想对这些对原创 2017-02-07 22:30:48 · 597 阅读 · 0 评论 -
【设计模式】—-(5)原型模式(创建型)
今天来看看23种设计模式中创建型的最后一种模式:原型模式。定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。类型:创建类模式类图:原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype。Prototype类需要具备以下两个条件:实现Cloneable接口。在java语言有一个Cloneable接口,它的作用只有一原创 2017-01-15 22:30:01 · 390 阅读 · 0 评论 -
JAVA 23 种设计模式
设计模式分为三种类型,共23种。创建型模式:单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。行为型模式:模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。按字典序排列简介如下。Abs原创 2015-08-14 23:05:24 · 893 阅读 · 0 评论 -
设计模式--浅谈
设计模式设计模式:解决某一类问题最有效的方法。设计模式主要分三个类型:1.创建型2.结构型3.行为型java中23种设计模式一、创建型1.Singleton(单例模式):保证一个类中有一个实例,并提供一个访问它的全局访问点。2.Abstract Factory(抽象工厂):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们的具体类原创 2015-08-15 20:42:24 · 859 阅读 · 2 评论 -
【设计模式】—-(1)单例模式(创建型)
概念: java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。 单例模式有以下特点: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、原创 2016-01-25 00:29:15 · 794 阅读 · 0 评论 -
【设计模式】—-(2)工厂方法模式(创建型)
一 、工厂方法(Factory Method)模式工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。二、 工厂方法模式角色与结构抽象工厂(Creator)角色:是工厂方原创 2016-01-26 23:26:17 · 845 阅读 · 0 评论 -
【设计模式小结】—-创建型模式
我们来一起回顾一下做个小结:什么是设计模式?设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方法的核心。为什么需要使用设计模式?使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。简单来说,使用设计模式可以让我们不必做一些不必要原创 2017-01-17 23:08:55 · 516 阅读 · 0 评论 -
【设计模式】—-(19)解释器模式(行为型)
开篇又要给自己找接口了,2号回上海,在高速上堵了 14个小时,导致没有按时更新博客,BS自己!一、定义(概念)给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。二、适用场景如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些原创 2017-02-03 22:21:37 · 360 阅读 · 0 评论