
设计模式篇
设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。
使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。
漫天雪_昆仑巅
程序人生
展开
-
Java_设计模式之责任链一
不知不觉中度过了一年多的程序员生涯,在这个过程中、学习了、进步了、收获了,当然最应该感谢的是在生活中、工作中帮助过自己的同事、同学、朋友。在此敬礼、表以最崇高的敬意!从该篇开始记录个人的Java程序员生涯、以此为记、前事不忘、后世之鉴!Java设计模式学习篇:责任链:简单描述:所谓责任链:即是 将一系列的条件限制用一条“链”关联起来,这点类似于S原创 2012-11-25 20:27:22 · 916 阅读 · 0 评论 -
Java设计模式_(行为型)_解析器模式
引用百科 给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中句子,属于行为类模式。解释器是一个简单的语法分析工具,它最显著的优点就是扩展性,修改语法规则只需要修改相应的非终结符就可以了,若扩展语法,只需要增加非终结符类就可以了。具体参考该连接文章http://www.cnblogs.com/SamFlynn/p/4501154.html原创 2017-10-14 17:25:29 · 5696 阅读 · 2 评论 -
Java设计模式_(行为型)_访问者模式
引用百科访问者模式(Visitor Pattern)是GoF提出的23种设计模式中的一种,属于行为模式。据《大话设计模式》中说算是最复杂也是最难以理解的一种模式了。定义(源于GoF《Design Pattern》):表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。从定义可以看出结构对象是使用访问者模式必备条件,而且这个结构对象必须存在遍历自身原创 2017-10-14 16:45:33 · 24955 阅读 · 0 评论 -
Java设计模式_(行为型)_模版方法模式
引用百科 模板方法模式是所有模式中最为常见的几个模式之一,是基于继承的代码复用的基本技术。模板方法模式需要开发抽象类和具体子类的设计师之间的协作。它是类的行为模式,准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意,模板方法所代表的行为称为顶原创 2017-10-13 16:13:48 · 20379 阅读 · 0 评论 -
Java设计模式_(行为型)_策略模式
引用百科 策略模式是指对一系列的算法定义,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:“准备一组算法,并将每一个算法封装起来,使得它们可以互换”。策略模式的优点有:策原创 2017-10-13 14:41:14 · 20257 阅读 · 0 评论 -
Java设计模式_(行为型)_状态模式
引用百科 (源于Design Pattern):当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。状态模式的意图是让一个对象在其内部状态改变的时候,其行为也随之改变。状态模式的示意性类图如下所示:相关角色状态模式所涉及到的角色有:●环境原创 2017-10-13 11:02:16 · 20483 阅读 · 0 评论 -
Java设计模式_(行为型)_观察者模式
引用百科 观察者模式(有时又被称为发布(publish )-订阅(Subscribe)模式、模型-视图(View)模式、源-收听者(Listener)模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。相关角色观察者模式主要包括以下角色:1原创 2017-10-12 20:35:48 · 20342 阅读 · 0 评论 -
Java设计模式_(行为型)_备忘录模式
引用百科 备忘录模式是一种软件设计模式:在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。相关角色1.Originator(发起人):负责创建一个备忘录Memento,用以记录当前时刻自身的内部状态,并可使用备忘录恢复内部状态。Originator可以根据需要决定Memento存储自己的哪些内部状态。2.Memento(备忘录):负原创 2017-10-12 13:39:06 · 20280 阅读 · 0 评论 -
Java设计模式_(行为型)_中介者模式
引用百科 用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显示地相互引用,从而使得其耦合松散,而且可以独立地改变它们之间地交互,从相互引用网状结构变成以中介者为中心地星型结构。相关角色抽象中介者(Mediator):定义好同事类对象到中介者对象的接口,用于各个同事类之间的通信。一般包括一个或几个抽象的事件方法,并由子类去实现。中介者实现类(RealMediator):从抽象中介者继承而来原创 2017-10-10 14:34:05 · 8709 阅读 · 0 评论 -
Java设计模式_(行为型)_迭代模式
引用百科 迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。适用性访问一个聚合对象的内容而无需暴露它的内部表示支持对聚合对象的多种遍历为遍历不同的聚合结构提供一个统一的接口迭代子模式涉及的角色:● 抽象迭代子(Iterator)角色:此抽象角色定义出遍历元素所需的接口。 ● 具体迭代子(ConcreteIterator)角色:此角色实现了I原创 2017-10-10 10:19:27 · 8625 阅读 · 0 评论 -
Java设计模式_(行为型)_命令模式
引用百科 在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与“行为实现者”解耦?将一组行为抽象为对象,实现二者之间的松耦合。这就是命令模式(Command Pattern)模式说明1.命令模式的本质是对命令进行封装,将发出命令的责任和执行命令的责原创 2017-10-09 14:44:41 · 8607 阅读 · 0 评论 -
Java设计模式_(行为型)_责任链模式
引用百科 责任链模式是一种设计模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。责任链模式涉及到的角色:● 抽象处理者(Handler)角色:定义出一个处理请求的接口。如果需要,接口可以定义原创 2017-10-09 11:22:00 · 8583 阅读 · 0 评论 -
Java设计模式_(结构型)_享元模式
引用百科 享元模式(英语:Flyweight Pattern)是一种软件设计模式。它使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于只是因重复而导致使用无法令人接受的大量内存的大量物件。通常物件中的部分状态是可以分享。常见做法是把它们放在外部数据结构,当需要使用时再将它们传递给享元。两个状态内蕴状态存储在享元内部,不会随环境的改变而有所不同,是可以共享的外蕴状态是原创 2017-10-01 12:25:55 · 8466 阅读 · 0 评论 -
Java设计模式_(结构型)_装饰模式
引用百科 装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。特点(1) 装饰对象和真实对象有相同的接口。这样客户端对象就能以和真实对象相同的方式和装饰对象交互。(2) 装饰对象包含一个真实对象的引用(reference)(3) 装饰对象接受所有来自客户端的请求。它把这些请求转发给真实的对象。(4) 装饰对象可以在转发原创 2017-09-29 15:38:43 · 8583 阅读 · 0 评论 -
Java设计模式_(结构型)_代理模式
引用百科即Proxy Pattern,23种常用的面向对象软件的设计模式之一。代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。组成:抽象角色:通过接口或抽象类声明真实角色实现的业务方法。代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附原创 2017-09-26 22:44:41 · 8534 阅读 · 2 评论 -
Java设计模式_(结构型)_桥接模式
引用百科 桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用Bridge模式。适原创 2017-09-26 09:44:32 · 9037 阅读 · 0 评论 -
Java设计模式_(结构型)_外观模式
引用百科外观模式(Facade),为子系统中的一组接口提供一个一致的界面,定义一个高层接口,这个接口使得这一子系统更加容易使用。Facade这个外观类为子系统提供一个共同的对外接口Clients客户对象通过一个外观接口读写子系统中各接口的数据资源。适用场景在以下情况下可以考虑使用外观模式:(1)设计初期阶段,应该有意识的将不同层分离,层与层之间建立外观模式。(2) 开发阶段,子系统越来越复杂,增加原创 2017-09-25 14:54:33 · 9203 阅读 · 0 评论 -
Java设计模式_(结构型)_组合模式
引用百科组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。掌握组合模式的重点是要理解清楚 “部分/整体” 还有 ”单个对象“ 与 "组合对象" 的含义。有时候又叫做部分-整体模式,它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。涉及角色原创 2017-09-22 15:37:56 · 9514 阅读 · 0 评论 -
Java设计模式_(结构型)_适配器模式
引用百科 在计算机编程中,适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。基本信息共有两类适配器模式:类适配器模式-- 这种适配器模式下,适配器继承自已实现的类(一般多重继承)。对象适配器模式-- 在这种适配器模式中,适配器容纳一个它包裹的类的实例。在这种情况下,适配原创 2017-09-21 15:54:39 · 26702 阅读 · 0 评论 -
Java设计模式_(创建型)_建造者模式
引用百科 建造者模式是设计模式的一种,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。实用范围1 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。2 当构造过程必须允许被构造的对象有不同表示时。角色 在这样的设计模式中,有以下几个角色:1 builder:为创建一个产品对象的各个部件指定抽象接口。2 ConcreteBuilder:实现Builde原创 2017-09-20 16:40:12 · 26761 阅读 · 0 评论 -
Java设计模式_(创建型)_原型模式
引用百科:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。Prototype原型模式是一种创建型设计模式,Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。解决什么问题:它主要面对的问题是:“某些结构复杂的对象”的创建工作;原创 2017-09-19 17:19:13 · 26829 阅读 · 0 评论 -
Java设计模式_描述
概述:设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。 设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解原创 2017-09-05 15:50:30 · 27057 阅读 · 1 评论 -
Java设计模式_(创建型)_单例模式
1 概述单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例。即一个类只有一个对象实例.数学与逻辑学中,singleton定义为“有且仅有一个元素的集合”。单例模式最初的定义出现于《设计模式》(艾迪生维斯理,1994):“保证一个类仅有一个实例,并提供一个访问它的全局访问点。”Java中单例模式定义:“一个类有且仅有一个实原创 2017-09-05 15:57:26 · 18083 阅读 · 0 评论 -
Java设计模式_(创建型)_工厂模式
引用百科: 工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A() 工厂模式也是用来创建实例对象的。但是如果有很多的对象需要去new创建,并且设置各种属性,几十几百,如此代码就非原创 2017-09-13 18:09:41 · 17920 阅读 · 1 评论 -
Java设计模式_(创建型)_抽象工厂模式
引用百科: 抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式。抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象。根据里氏替换原则,任何接受父类型的地方,都应当能够接受子类型。因此,实际上系统所需要的,仅仅是类型与这些抽象产品角色相同的一些实例,而不是这些抽象产品的实例。换言原创 2017-09-18 22:20:32 · 18073 阅读 · 0 评论