自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 访问者模式 Visitor Pattern

一、什么是访问者模式    Visitor模式也叫访问者模式,是行为模式之一,它分离对象的数据和行为,使用Visitor模式,可以不修改已有类的情况下,增加新的操作。二、访问者模式的应用示例    比如有一个公园,有一到多个不同的组成部分;该公园存在多个访问者:清洁工A负责打扫公园的A部分,清洁工B负责打扫公园的B部分,公园的管理者负责检点各项事务是否完成,上级领导可以视察公园等等

2015-04-08 10:40:57 317

原创 解释器模式 Interpreter Pattern

一、什么是解释器模式    Interpreter模式也叫解释器模式,是行为模式之一,它是一种特殊的设计模式,它建立一个解释器,对于特定的计算机程序设计语言,用来解释预先定义的文法。简单地说,Interpreter模式是一种简单的语法解释器构架。二、解释器模式应用场景    当有一个语言需要解释执行,并且你可将该语言中的句子表示为一个抽象语法树时,可使用解释器模式。    而当

2015-04-08 10:19:45 317

原创 享元模式

一、什么是享元模式Flyweight模式也叫享元模式,是构造型模式之一,它通过与其他类似对象共享数据来减小内存占用。二、享元模式的结构see the picture三、享元模式的角色和职责抽象享元角色:所有具体享元类的父类,规定一些需要实现的公共接口。 具体享元角色:抽象享元角色的具体实现类,并实现了抽象享元角色规定的方法。享元工厂角色:

2015-03-31 09:53:25 326

原创 中介者模式

一、什么是中介者模式    Mediator模式也叫中介者模式,是由GoF提出的23种软件设计模式的一种。Mediator模式是行为模式之一,在Mediator模式中,类之间的交互行为被统一放在Mediator的对象中,对象通过Mediator对象同其他对象交互,Mediator对象起着控制器的作用。二、中介者模式的结构三、中介者模式的角色和职责mediat

2015-03-31 09:30:38 261

原创 职责链模式

一、什么是职责链模式    Chain of Responsibility(CoR)模式也叫职责链模式或者职责连锁模式,是行为模式之一,该模式构造一系列分别担当不同的职责的类的对象来共同完成一个任务,这些类的对象之间像链条一样紧密相连,所以被称作职责链模式。二、职责链模式的应用场景例1:比如客户Client要完成一个任务,这个任务包括a,b,c,d四个部分。 首先客户Client把

2015-03-13 16:30:41 259

原创 命令模式

一、什么是命令模式    Command模式也叫命令模式 ,是行为设计模式的一种。Command模式通过被称为Command的类封装了对目标对象的调用行为以及调用参数。二、命令模式的应用场景    在面向对象的程序设计中,一个对象调用另一个对象,一般情况下的调用过程是:创建目标对象实例;设置调用参数;调用目标对象的方法。    但在有些情况下有必要使用一个专门的类对这种调用过程

2015-03-13 14:45:43 290

原创 桥接模式

一、什么是桥接模式Bridge 模式又叫做桥接模式,是构造型的设计模式之一。Bridge模式基于类的最小设计原则,通过使用封装,聚合以及继承等行为来让不同的类承担不同的责任。它的主要特点是把抽象(abstraction)与行为实现(implementation)分离开来,从而可以保持各部分的独立性以及应对它们的功能扩展。二、桥接模式的结构三、桥接模式的角色和职责Cl

2015-03-13 10:40:39 309

原创 单例模式

一、什么是单例模式单例模式是一种对象创建型模式,使用单例模式,可以保证为一个类只生成唯一的实例对象。也就是说,在整个程序空间中,该类只存在一个实例对象。其实,GoF对单例模式的定义是:保证一个类、只有一个实例存在,同时提供能对该实例加以访问的全局访问方法。二、为什么要使用单例模式呢?在应用系统开发中,我们常常有以下需求:- 在多个线程之间,比如servlet环境,共享同

2015-03-06 10:52:45 243

原创 组合模式

一、什么是组合模式Composite模式也叫组合模式,是构造型的设计模式之一。通过递归手段来构造树形的对象结构,并可以通过一个对象来访问整个对象树。二、组合模式的结构三、组合模式的角色和职责Component (树形结构的节点抽象)- 为所有的对象定义统一的接口(公共属性,行为等的定义)- 提供管理子节点对象的接口方法- [可选]提供管理父节点对象的

2015-03-05 10:44:04 228

原创 备忘录模式

一、什么是备忘录模式    Memento模式也叫备忘录模式,是行为模式之一,它的作用是保存对象的内部状态,并在需要的时候(undo/rollback)恢复对象以前的状态。二、备忘录模式的应用场景        如果一个对象需要保存状态并可通过undo或rollback等操作恢复到以前的状态时,可以使用Memento模式。1)一个类需要保存它的对象的状态(相当于Originat

2015-03-04 16:52:42 387

原创 适配器模式

一、什么是适配器模式    Adapter模式也叫适配器模式,是构造型模式之一,通过Adapter模式可以改变已有类(或外部类)的接口形式。二、适配器模式应用场景    在大规模的系统开发过程中,我们常常碰到诸如以下这些情况:我们需要实现某些功能,这些功能已有还不太成熟的一个或多个外部组件,如果我们自己重新开发这些功能会花费大量时间;所以很多情况下会选择先暂时使用外部组件,以后再考

2015-03-04 16:16:10 254

原创 状态模式

状态模式(State),当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。  状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况,把状态的判断逻辑转到到表示不同状态的一系列类当中,可以把复杂的逻辑判断简化。当然,如果这个状态的判断很简单,就没有必要使用状态模式了。  如果我没理解错的话,说白了就是如果判断很长,就把判断分割到多个类里面。  状态

2015-03-04 14:49:21 251

原创 抽象工厂模式

一、什么是抽象工厂模式抽象工厂模式是所有形态的工厂模式中最为抽象和最其一般性的。抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品的具体类型的情况下,能够创建多个产品族的产品对象。二、模式中包含的角色及其职责1.抽象工厂(Creator)角色 (FruitFactory.java) 抽象工厂模式的核心,包含对多个产品结构的声明,任何工厂类都必须实现这个接口。

2015-03-04 11:14:02 316

原创 观察者模式

一、什么是观察者模式Observer模式是行为模式之一,它的作用是当一个对象的状态发生变化时,能够自动通知其他关联对象,自动刷新对象状态。 Observer模式提供给关联对象一种同步通信的手段,使某个对象与依赖它的其他对象之间保持状态同步。 二、观察者模式的角色和职责Subject(被观察者)被观察的对象。当需要被观察的状态发生变化时,需要通知队列中所有观察者对象。

2015-03-04 10:37:31 285

原创 建造者模式

1.概念    将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 [构建与表示分离,同构建不同表示]    与抽象工厂的区别:在建造者模式里,有个指导者,由指导者来管理建造者,用户是与指导者联系的,指导者联系建造者最后得到产品。即建造模式可以强制实行一种分步骤进行的建造过程。  建造模式是将复杂的内部创建封装在内部,对于外部调用的人来说,只需要传入建造

2015-03-03 17:06:24 275

原创 外观模式

一、什么是外观模式Facade模式也叫外观模式,是由GoF提出的23种设计模式中的一种。Facade模式为一组具有类似功能的类群,比如类库,子系统等等,提供一个一致的简单的界面。这个一致的简单的界面被称作facade。二、外观模式的角色和职责Facade为调用方定义简单的调用接口。Clients调用者。通过Facade接口调用提供某功能的内部类群。Pac

2015-03-03 16:27:00 339

原创 迪米特法则

迪米特法则:如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用每一个类都应当尽量降低成员的访问权限。类之间的耦合越弱,越有利于复用,一个处在弱耦合的类被修改,不会对我关系的类造成波及。

2015-03-03 15:56:58 272

原创 模板方法模式

一、什么是模板方法模式    Template Method模式也叫模板方法模式,是行为模式之一,它把具有特定步骤算法中的某些必要的处理委让给抽象方法,通过子类继承对抽象方法的不同实现改变整个算法的行为。二、模板方法模式的应用场景Template Method模式一般应用在具有以下条件的应用中:- 具有统一的操作步骤或操作过程- 具有不同的操作细节- 存在多个具

2015-03-03 15:35:32 280

原创 原型模式

一、什么是原型模式Prototype模式是一种对象创建型模式,它采取复制原型对象的方法来创建对象的实例。使用Prototype模式创建的实例,具有与原型一样的数据。二、原型模式的特点1. 由原型对象自身创建目标对象。也就是说,对象创建这一动作发自原型对象本身。2. 目标对象是原型对象的一个克隆。也就是说,通过Prototype模式创建的对象,不仅仅与原型对象具有相同的结构,

2015-03-03 15:18:50 336

原创 工厂方法模式

一、什么是工厂方法模式工厂方法模式同样属于类的创建型模式又被称为多态工厂模式 。工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。二、模式中包含的角色及其职责1.抽

2015-02-03 14:49:36 342

原创 代理模式

一、什么是代理模式Proxy模式又叫做代理模式,是构造型的设计模式之一,它可以为其他对象提供一种代理(Proxy)以控制对这个对象的访问。所谓代理,是指具有与代理元(被代理的对象)具有相同的接口的类,客户端必须通过代理与被代理的目标类交互,而代理一般在交互的过程中(交互前后),进行某些特别的处理。二、代理模式的结构三、代理模式的角色和职责subject(抽象主题

2015-02-03 14:28:35 296

原创 装饰模式

定义:动态给一个对象添加一些额外的职责,就象在墙上刷油漆.使用Decorator模式相比用生成子类方式达到功能的扩充显得更为灵活。设计初衷:通常可以使用继承来实现功能的拓展,如果这些需要拓展的功能的种类很繁多,那么势必生成很多子类,增加系统的复杂性,同时,使用继承实现功能拓展,我们必须可预见这些拓展功能,这些功能是编译时就确定了,是静态的。在此,以一家人作画为例写了5个java类来描述

2015-02-03 14:11:20 317

原创 依赖倒转原则

依赖倒转原则A,高层模块不应该依赖底层模块。两个都应该依赖抽象。B,抽象补应该依赖细节。细节应该依赖抽象。依赖倒转其实可以说是面向对象设计的标志,用哪种语言来编写程序不重要,如果编写时考虑的都是如何针对抽象编程而不是针对细节编程,即程序中所有的依赖关系都是终止于抽象类或者接口,那就是面向对象的设计,反之那就是过程化的设计了。里氏换代原则:子类型必须能够替换掉它们的父类型。

2015-02-02 18:08:18 249

原创 开放-封闭原则

开发-封闭原则,是说软件实体(类,模块,函数等等)应该可以拓展,但是不可修改。【ASD】

2015-02-02 15:31:17 267

原创 拍摄UFO-单一职责原则

单一职责原则【SRP】,就一个类而言,应该仅有一个引起它变化的原因。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会消弱或者抑制这个类完成其他职责的能力。这种耦合会单只脆弱的设计,当变化发生的时,设计会遭受到意想不到的破坏。软件设计真正要坐的的许多内容,就是发现职责并把那些职责相互分离【ASD】

2015-02-02 15:10:47 409

原创 商场促销-策略模式

一、什么是策略模式Strategy模式也叫策略模式是行为模式之一,它对一系列的算法加以封装,为所有算法定义一个抽象的算法接口,并通过继承该抽象算法接口对所有的算法加以封装和实现,具体的算法选择交由客户端决定(策略)。Strategy模式主要用来平滑地处理算法的切换 。二、策略模式的结构看图:三、策略模式的角色和职责Strategy:1 策略(算法)抽

2015-02-02 14:38:17 968

原创 代码无错就是忧? 简单工厂模式

首页,先介绍一下这本书,这是本趣味性很强,容易理解及入门的一本书,感谢作者程杰为我们带来这么好的一个作品。我做开发4年有余,机缘巧合,在Android刚刚进入中国的时候就加入的开发行列,今年来了一个公司,开发环境比较轻松,于是把自己一直想做但没做的事给做了,就是学习ios开发,近4个月的时间学习ios,还顺便帮助公司做了一个不大不小的项目,这过程当然很多很多坎,但总算做完了,总之,感谢领导的信

2015-02-02 10:38:19 589

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除