
Java设计模式
文章平均质量分 83
常笑笑
这个作者很懒,什么都没留下…
展开
-
Java设计模式之二(工厂方法模式)
一、什么是工厂方法模式?工厂方法模式同样属于类的创建型模式又被称为多态工厂模式 。工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。二、模式中包含的角色及其职责原创 2013-04-13 13:43:23 · 1011 阅读 · 0 评论 -
Java设计模式之十九(职责链模式)
一、什么是职责链模式Chain of Responsibility(CoR)模式也叫职责链模式或者职责连锁模式,是行为模式之一,该模式构造一系列分别担当不同的职责的类的对象来共同完成一个任务,这些类的对象之间像链条一样紧密相连,所以被称作职责链模式。二、职责链模式的应用场景例1:比如客户Client要完成一个任务,这个任务包括a,b,c,d四个部分。 首先客户Client把任务原创 2013-04-27 10:17:19 · 1761 阅读 · 0 评论 -
Java设计模式之十五(桥接模式)
一、什么是桥接模式Bridge 模式又叫做桥接模式,是构造型的设计模式之一。Bridge模式基于类的最小设计原则,通过使用封装,聚合以及继承等行为来让不同的类承担不同的责任。它的主要特点是把抽象(abstraction)与行为实现(implementation)分离开来,从而可以保持各部分的独立性以及应对它们的功能扩展。二、桥接模式的结构三、桥接模式的角色和职责原创 2013-04-20 11:44:12 · 8183 阅读 · 2 评论 -
Java设计模式之十四(组合模式)
一、什么是组合模式Composite模式也叫组合模式,是构造型的设计模式之一。通过递归手段来构造树形的对象结构,并可以通过一个对象来访问整个对象树。二、组合模式的结构三、组合模式的角色和职责Component (树形结构的节点抽象)- 为所有的对象定义统一的接口(公共属性,行为等的定义)- 提供管理子节点对象的接口方法- [可选]提供管理父节原创 2013-04-20 10:33:42 · 1153 阅读 · 0 评论 -
Java设计模式之二十(迭代模式)
一、什么是迭代模式Iterator模式也叫迭代模式,是行为模式之一,它把对容器中包含的内部对象的访问委让给外部类,使用Iterator(遍历)按顺序进行遍历访问的设计模式。二、不使用迭代模式的应用在应用Iterator模式之前,首先应该明白Iterator模式用来解决什么问题。或者说,如果不使用Iterator模式,会存在什么问题。1.由容器自己实现顺序遍历。直接在容器原创 2013-05-02 11:30:43 · 1068 阅读 · 0 评论 -
Java设计模式之二十二(备忘录模式)
一、什么是备忘录模式 Memento模式也叫备忘录模式,是行为模式之一,它的作用是保存对象的内部状态,并在需要的时候(undo/rollback)恢复对象以前的状态。二、备忘录模式的应用场景如果一个对象需要保存状态并可通过undo或rollback等操作恢复到以前的状态时,可以使用Memento模式。1)一个类需要保存它的对象的状态(相当于Originator角色)原创 2013-05-03 11:53:25 · 1159 阅读 · 0 评论 -
Java设计模式之二十一(模版模式)
一、什么是模板方法模式Template Method模式也叫模板方法模式,是行为模式之一,它把具有特定步骤算法中的某些必要的处理委让给抽象方法,通过子类继承对抽象方法的不同实现改变整个算法的行为。二、模板方法模式的应用场景Template Method模式一般应用在具有以下条件的应用中:- 具有统一的操作步骤或操作过程- 具有不同的操作细节- 存在多个具有同原创 2013-05-03 11:05:09 · 1044 阅读 · 0 评论 -
Java设计模式之二十四(命令模式)
一、什么是命令模式Command模式也叫命令模式 ,是行为设计模式的一种。Command模式通过被称为Command的类封装了对目标对象的调用行为以及调用参数。二、命令模式的应用场景在面向对象的程序设计中,一个对象调用另一个对象,一般情况下的调用过程是:创建目标对象实例;设置调用参数;调用目标对象的方法。 但在有些情况下有必要使用一个专门的类对这种调用过程加以封装,我们把这种专原创 2013-05-04 11:02:42 · 961 阅读 · 0 评论 -
Java设计模式之二十三(状态模式)
一、什么是状态模式State模式也叫状态模式,是行为设计模式的一种。State模式允许通过改变对象的内部状态而改变对象的行为,这个对象表现得就好像修改了它的类一样。 二、状态模式的应用场景状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转译到表现不同状态的一系列类当中,可以把复杂的判断逻辑简化。三、状态模式的结构四原创 2013-05-04 10:16:21 · 908 阅读 · 0 评论 -
Java设计模式之二十五(访问者模式)
一、什么是访问者模式Visitor模式也叫访问者模式,是行为模式之一,它分离对象的数据和行为,使用Visitor模式,可以不修改已有类的情况下,增加新的操作。二、访问者模式的应用示例比如有一个公园,有一到多个不同的组成部分;该公园存在多个访问者:清洁工A负责打扫公园的A部分,清洁工B负责打扫公园的B部分,公园的管理者负责检点各项事务是否完成,上级领导可以视察公园等等。也就是说,原创 2013-05-05 14:00:32 · 1868 阅读 · 0 评论 -
Java设计模式之二十六(开放封闭原则)
一、什么是开放封闭原则开放封闭原则(Open-Closed Principle):一个软件实体应当对扩展开放,则修改关闭。在设计一个模块时,应当使得这个模块可以在不被修改的前提下被扩展。也就是说,应当可以在不必修改源代码的情况下修改这个模块的行为。设计的目的便在于面对需求的改变而保持系统的相对稳定,从而使得系统可以很容易的从一个版本升级到另一个版本。二、怎样做到开放原创 2013-05-06 13:43:26 · 1906 阅读 · 0 评论 -
Java设计模式之二十七(单一职责原则)
什么是单一职责原则单一职责原则(Single Responsibility Principle ):就一个类而言,应该仅有一个引起它变化的原因。二、多功能的山寨手机山寨手机的功能:拍照、摄像、手机游戏、网络摄像头、GPS、炒股等等。功能多、但是每一个功能都不强。拍摄功能 ------专业摄像机或照相机手机游戏 ------PSP网原创 2013-05-08 10:54:51 · 1063 阅读 · 0 评论 -
Java设计模式之二十八(里氏代换原则)
一、什么是里氏代换原则里氏代换原则(Liskov Substitution Principle):一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且它察觉不出父类和子类对象的区别。也就是说,在软件里面,把父类替换成它的子类,程序的行为没有变化。二、反过来的代换不成立里氏代换原则(Liskov Substitution Principle):一个软件实体如果使用的是原创 2013-05-08 11:02:52 · 1420 阅读 · 0 评论 -
Java设计模式之二十九(依赖倒转原则)
一、什么是倒转?二、什么是依赖倒转原则依赖倒转(Dependence Inversion Principle ):1.抽象不应该依赖于细节,细节应该依赖于抽象。 2.高层模块不依赖底层模块,两者都依赖抽象。三、组装电脑四、怎样做到依赖倒转1.工厂方法模式2.模板方法模式3.迭代子模式代码实现:原创 2013-05-09 11:54:49 · 1189 阅读 · 0 评论 -
Java设计模式之十八(中介者模式)
一、什么是中介者模式 Mediator模式也叫中介者模式,是由GoF提出的23种软件设计模式的一种。Mediator模式是行为模式之一,在Mediator模式中,类之间的交互行为被统一放在Mediator的对象中,对象通过Mediator对象同其他对象交互,Mediator对象起着控制器的作用。二、中介者模式的结构三、中介者模式的角色和职责mediator原创 2013-04-26 09:21:28 · 888 阅读 · 0 评论 -
Java设计模式之十二(代理模式)
一、什么是代理模式Proxy模式又叫做代理模式,是构造型的设计模式之一,它可以为其他对象提供一种代理(Proxy)以控制对这个对象的访问。 所谓代理,是指具有与代理元(被代理的对象)具有相同的接口的类,客户端必须通过代理与被代理的目标类交互,而代理一般在交互的过程中(交互前后),进行某些特别的处理。二、代理模式的结构三、代理模式的角色和职责subject原创 2013-04-17 10:47:17 · 1197 阅读 · 0 评论 -
Java设计模式之一(简单工厂模式)
一、什么是简单工厂模式?简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式。通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。二、模式中包含的角色及其职责?1.工厂(Creator)角色 简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。 2.抽象(Product)角色 简单工厂模式所创建的所有原创 2013-04-13 13:10:46 · 1252 阅读 · 0 评论 -
Java设计模式之四(经典面试题:工厂模式在开发中的运用)
一、工厂模式在开发中的运用面试题: 写一个简单的计算器。代码实现:抽象一个运算类:package com.qianyan.calcuator;public abstract class Operation { //数字一 private double num1; //数字二 private double num2; public do原创 2013-04-14 09:31:37 · 4174 阅读 · 0 评论 -
Java设计模式之三(抽象工厂模式)
一、什么是抽象工厂模式抽象工厂模式是所有形态的工厂模式中最为抽象和最其一般性的。抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品的具体类型的情况下,能够创建多个产品族的产品对象。二、产品族和产品等级结构三、模式中包含的角色及其职责1.抽象工厂(Creator)角色 抽象工厂模式的核心,包含对多个产品结构的声明,任何工厂类都必须实现这个接口。原创 2013-04-14 08:53:09 · 1163 阅读 · 0 评论 -
Java设计模式之五(单例模式详解)
一、什么是单例模式单例模式是一种对象创建型模式,使用单例模式,可以保证为一个类只生成唯一的实例对象。也就是说,在整个程序空间中,该类只存在一个实例对象。其实,GoF对单例模式的定义是:保证一个类、只有一个实例存在,同时提供能对该实例加以访问的全局访问方法。 二、为什么要使用单例模式呢?在应用系统开发中,我们常常有以下需求:- 在多个线程之间,比如servlet环境,原创 2013-04-14 11:01:58 · 1269 阅读 · 0 评论 -
Java设计模式之六(原型模式)
一、什么是原型模式Prototype模式是一种对象创建型模式,它采取复制原型对象的方法来创建对象的实例。使用Prototype模式创建的实例,具有与原型一样的数据。二、原型模式的特点1. 由原型对象自身创建目标对象。也就是说,对象创建这一动作发自原型对象本身。2.目标对象是原型对象的一个克隆。也就是说,通过Prototype模式创建的对象,不仅仅与原型对象具有相同的原创 2013-04-15 09:44:08 · 1100 阅读 · 0 评论 -
Java设计模式之八(装饰模式)
一、什么是装饰模式 装饰( Decorator )模式又叫做包装模式。通过一种对客户端透明的方式来扩展对象的功能,是继承关系的一个替换方案。二、装饰模式的结构三、装饰模式的角色和职责抽象组件角色: 一个抽象接口,是被装饰类和装饰类的父接口。具体组件角色:为抽象组件的实现类。抽象装饰角色:包含一个组件的引用,并定义了与抽象组件一致的接口。原创 2013-04-15 11:40:42 · 1249 阅读 · 0 评论 -
Java设计模式之七(建造者模式)
一、什么是建造者模式Builder模式也叫建造者模式或者生成器模式,是由GoF提出的23种设计模式中的一种。Builder模式是一种对象创建型模式之一,用来隐藏复合对象的创建过程,它把复合对象的创建过程加以抽象,通过子类继承和重载的方式,动态地创建具有复合属性的对象。二、建造者模式的结构三、建造者模式应用场景- 对象的创建:Builder模式是为对象的创建而原创 2013-04-15 10:34:49 · 952 阅读 · 0 评论 -
Java设计模式之十六(适配器模式)
一、什么是适配器模式Adapter模式也叫适配器模式,是构造型模式之一,通过Adapter模式可以改变已有类(或外部类)的接口形式。二、适配器模式应用场景 在大规模的系统开发过程中,我们常常碰到诸如以下这些情况:我们需要实现某些功能,这些功能已有还不太成熟的一个或多个外部组件,如果我们自己重新开发这些功能会花费大量时间;所以很多情况下会选择先暂时使用外部组件,以后再考虑随时原创 2013-04-24 10:18:08 · 1038 阅读 · 0 评论 -
Java设计模式之九(策略模式)
一、什么是策略模式Strategy模式也叫策略模式是行为模式之一,它对一系列的算法加以封装,为所有算法定义一个抽象的算法接口,并通过继承该抽象算法接口对所有的算法加以封装和实现,具体的算法选择交由客户端决定(策略)。Strategy模式主要用来平滑地处理算法的切换 。二、策略模式的结构三、策略模式的角色和职责Strategy:策略(算法)抽象。 Conc原创 2013-04-16 10:56:29 · 1150 阅读 · 0 评论 -
Java设计模式之十一(享元模式)
一、什么是享元模式Flyweight模式也叫享元模式,是构造型模式之一,它通过与其他类似对象共享数据来减小内存占用。二、享元模式的结构三、享元模式的角色和职责抽象享元角色:所有具体享元类的父类,规定一些需要实现的公共接口。 具体享元角色:抽象享元角色的具体实现类,并实现了抽象享元角色规定的方法。 享元工厂角色: 负责创建和管理享元角色。原创 2013-04-16 21:53:46 · 1025 阅读 · 0 评论 -
Java设计模式之十(观察者模式)
一、什么是观察者模式Observer模式是行为模式之一,它的作用是当一个对象的状态发生变化时,能够自动通知其他关联对象,自动刷新对象状态。 Observer模式提供给关联对象一种同步通信的手段,使某个对象与依赖它的其他对象之间保持状态同步。二、观察者模式的结构三、观察者模式的角色和职责Subject(被观察者) 被观察的对象。当需要被观察的状态发原创 2013-04-16 11:53:54 · 2743 阅读 · 0 评论 -
Java设计模式之十七(解释器模式)
一、什么是解释器模式Interpreter模式也叫解释器模式,是行为模式之一,它是一种特殊的设计模式,它建立一个解释器,对于特定的计算机程序设计语言,用来解释预先定义的文法。简单地说,Interpreter模式是一种简单的语法解释器构架。二、解释器模式应用场景 当有一个语言需要解释执行, 并且你可将该语言中的句子表示为一个抽象语法树时,可使用解释器模式。而当存在以下情原创 2013-04-25 09:41:18 · 1128 阅读 · 0 评论 -
Java设计模式之十三(外观模式)
一、什么是外观模式 Facade模式也叫外观模式,是由GoF提出的23种设计模式中的一种。Facade模式为一组具有类似功能的类群,比如类库,子系统等等,提供一个一致的简单的界面。这个一致的简单的界面被称作facade。二、外观模式的结构三、外观模式的角色和职责Facade 为调用方定义简单的调用接口。 Clients 调用者。通过Fac原创 2013-04-17 11:45:09 · 1434 阅读 · 0 评论 -
Java设计模式之三十(迪米特法则)
一、什么是迪米特法则迪米特法则(Law of Demeter )又叫做最少知识原则,也就是说,一个对象应当对其他对象尽可能少的了解。迪米特法则最初是用来作为面向对象的系统设计风格的一种法则,于1987年秋天由lan holland在美国东北大学为一个叫做迪米特的项目设计提出的。二、狭义的迪米特法则如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其原创 2013-05-09 12:02:12 · 1291 阅读 · 1 评论