设计模式总结篇

简介 设计模式目的:为了可重用代码,保证代码的可靠性,更容易被他人理解。  设计模式的六大原则:  总原则:开闭原则,即对扩展开放,对修改关闭。  1 单一职责原则:每个类应该实现单一的职责,否则应该把类拆分。  2 里氏替换原则:任何基类可以出现的地方,子类一定可以出现。它是继承复...

2017-09-22 11:10:24

阅读数 101

评论数 0

结构型模式总结篇

结构型模式描述如何组织类和对象以组成更大的结构。结构型类模式采用继承机制来组合接口和实现,结构型对象模式则采用组合聚合来组合对象以实现新功能,可以在运行时刻改变对象组合关系,具有更大灵活性,故这里只关注结构型对象模式。一般常见的结构型模式有7种:ABCDFFP(Adapter,Bridge,Com...

2017-09-22 10:18:52

阅读数 89

评论数 0

23种设计模式(23):享元模式

享元模式介绍 享元模式适用场景 面向对象技术可以很好的解决一些灵活性或可扩展性问题,但在很多情况下需要在系统中增加类和对象的个数。当对象数量太多时,将导致对象创建及垃圾回收的代价过高,造成性能下降等问题。享元模式通过共享相同或者相似的细粒度对象解决了这一类问题。 享元模式定义 ...

2017-09-22 10:14:30

阅读数 193

评论数 0

23种设计模式(22):组合模式

一、引言 在大学的数据结构这门课上,树是最重要的章节之一。还记得树是怎么定义的吗?树(Tree)是n(n≥0)个结点的有限集T,T为空时称为空树,否则它满足如下两个条件: (1)    有且仅有一个特定的称为根(Root)的结点; (2)   其余的结点可分为m(m≥0)个互不相交的子集Tl,T2...

2017-09-22 09:52:37

阅读数 199

评论数 0

23种设计模式(21):桥接模式

一、桥接模式的内容 桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。 桥接模式将继承关系转换为关联关系,从而降低了类与类之间的耦...

2017-09-22 09:36:45

阅读数 98

评论数 0

23种设计模式(20):外观模式(2)

3. 外观模式应用实例        下面通过一个应用实例来进一步学习和理解外观模式。          1. 实例说明        某软件公司欲开发一个可应用于多个软件的文件加密模块,该模块可以对文件中的数据进行加密并将加密之后的数据存储在一个新文件中,...

2017-09-22 09:34:19

阅读数 328

评论数 0

23种设计模式(20):外观模式(1)

外观模式是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合度,且客户端调用非常方便。   1. 外观模式概述       不知道大家有没有比较过自己泡茶和去茶馆喝茶的区别,如果是自...

2017-09-22 09:25:18

阅读数 97

评论数 0

23种设计模式(19):代理模式

定义:    为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用   角色: 1,  抽象角色:声明真实对象和代理对象的共同接口。 2,  代理角色:代理对象角色内部...

2017-09-21 13:15:03

阅读数 81

评论数 0

23种设计模式(18):装饰者模式(Decorator)

装饰者模式 一,场景介绍 1,需求   一杯主饮料(Beverage)需要加入各种调料,比如蒸奶、豆浆、摩卡、奶泡等,最后需要算出加入调料后饮料的价格。 2,思考 如果只是几种固定的饮料进行组合和搭配那么容易实现,但是这些都是动态随机的,并且可能以后会有更多的新饮料。那么如何进行动态的组合呢?如...

2017-09-21 11:14:04

阅读数 139

评论数 0

23种设计模式(17):适配器模式

定义: 将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。   角色: 目标(Target)角色:这就是所期待得到的接口,也就是这类的接口是符合我们要求的。     源(Adapee)角色:我们要使用...

2017-09-21 11:02:05

阅读数 88

评论数 0

行为型模式总结篇(2)

六、策略模式 作用: 策略模式(对象行为型)定义了算法家族Strategy,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。 要点: 1、定义算法的公共接口Strategy 2、定义算法连接的上下文类Co...

2017-09-21 10:57:12

阅读数 68

评论数 0

行为型模式总结篇(1)

行为型模式 行为型模式涉及到算法和对象间职责的分配,行为模式描述了对象和类的模式,以及它们之间的通信模式,行为型模式刻画了在程序运行时难以跟踪的复杂的控制流可分为行为类模式和行为对象模式 行为类模式使用继承机制在类间分派行为;行为对象模式使用对象聚合来分配行为。一些行为对象模式...

2017-09-21 10:55:12

阅读数 77

评论数 0

23种设计模式(16):状态模式(State)

模式定义 允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。其别名为状态对象(Objects for States)。 模式结构 状态模式包含如下角色: Context: 环境类 State: 抽象状态类 ConcreteState: 具体状态类 UML图 ...

2017-09-21 10:23:08

阅读数 86

评论数 0

23种设计模式(15):备忘录模式

定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态 类型:行为类 类图:         我们在编程的时候,经常需要保存对象的中间状态,当需要的时候,可以恢复到这个状态。比如,我们使用Eclipse进行...

2017-09-21 10:14:42

阅读数 94

评论数 0

23种设计模式(14):解释器模式

定义:给定一种语言,定义他的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中句子。 类型:行为类模式 类图:         解释器模式是一个比较少用的模式,本人之前也没有用过这个模式。下面我们就来一起看一下解释器模式。   解释器模式的结构 ...

2017-09-21 09:40:52

阅读数 72

评论数 0

23种设计模式(13):迭代器模式

定义:提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节。 类型:行为类模式 类图:        如果要问java中使用最多的一种模式,答案不是单例模式,也不是工厂模式,更不是策略模式,而是迭代器模式,先来看一段代码吧: [java] vi...

2017-09-21 09:35:59

阅读数 79

评论数 0

23种设计模式(12):策略模式

定义:定义一组算法,将每个算法都封装起来,并且使他们之间可以互换。 类型:行为类模式 类图:        策略模式是对算法的封装,把一系列的算法分别封装到对应的类中,并且这些类实现相同的接口,相互之间可以替换。在前面说过的行为类模式中,有一种模式也是关注对算法的封装——...

2017-09-21 09:26:19

阅读数 83

评论数 0

23种设计模式(11):责任链模式

定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。 类型:行为类模式 类图:         首先来看一段代码: [java] view plainco...

2017-09-20 15:22:46

阅读数 85

评论数 0

23种设计模式(10):命令模式

定义:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。 类型:行为类模式 类图: 命令模式的结构         顾名思义,命令模式就是对命令的封装,首先来看一下命令模式类图中的基本结构: ...

2017-09-20 15:15:32

阅读数 64

评论数 0

访问者模式讨论篇:java的动态绑定与双分派

java的动态绑定         所谓的动态绑定就是指程执行期间(而不是在编译期间)判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。java继承体系中的覆盖就是动态绑定的,看一下如下的代码: [java] view plain copy ...

2017-09-20 15:13:08

阅读数 64

评论数 0

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