设计模式之解释器模式

在阎宏博士的《JAVA与模式》一书中开头是这样描述解释器(Interpreter)模式的:   解释器模式是类的行为模式。给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器。客户端可以使用这个解释器来解释这个语言中的句子。 解释器模式的结构   下面就以一个示意性的系统...

2016-06-30 11:38:38

阅读数:177

评论数:0

设计模式之原型模式

定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。 类型:创建类模式 类图: 原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype。Prototype类需要具备以下两个条件: 实现Cloneable接口。在java语言有一个Cloneable...

2016-06-29 21:45:52

阅读数:236

评论数:0

设计模式之建造者模式

定义: 建造者模式:将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 实用范围 1、当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。 2、当构造过程必须允许被构造的对象有不同表示时。 角色 在这样的设计模式中,有以下几个角...

2016-06-29 21:44:25

阅读数:169

评论数:0

设计模式之中介者模式

定义 用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互。 角色 抽象中介者:定义好同事类对象到中介者对象的接口,用于各个同事类之间的通信。一般包括一个或几个抽象的事件方法,并由子类去实现。 中介者实现类:从抽...

2016-06-29 21:41:38

阅读数:176

评论数:0

设计模式之责任链模式

什么是链 1、链是一系列节点的集合。 2.、链的各节点可灵活拆分再重组。 职责链模式 使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系, 将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理他为止。 角色 抽象处理者角色(Handle...

2016-06-29 21:38:55

阅读数:218

评论数:0

设计模式之享元模式

解释一下概念:也就是说在一个系统中如果有多个相同的对象,那么只共享一份就可以了,不必每个都去实例化一个对象。比如说一个文本系统,每个字母定一个对象,那么大小写字母一共就是52个,那么就要定义52个对象。如果有一个1M的文本,那么字母是何其的多,如果每个字母都定义一个对象那么内存早就爆了。那么如果要...

2016-06-29 21:36:04

阅读数:200

评论数:0

设计模式之桥接器模式

生活中的一个例子:     拿汽车在路上行驶的来说。既有小汽车又有公共汽车,它们都不但能在市区中的公路上行驶,也能在高速公路上行驶。这你会发现,对于交通工具(汽车)有不同的类型,它们所行驶的环境(路)也有不同类型,在软件系统中就要适应两个方面(不同车型,不同道路)的变化,怎样实现才能应对这种变化...

2016-06-29 21:10:50

阅读数:297

评论数:0

设计模式之代理模式

在阎宏博士的《JAVA与模式》一书中开头是这样描述代理(Proxy)模式的:   代理模式是对象的结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。 代理模式的结构   所谓代理,就是一个人或者机构代表另一个人或者机构采取行动。在一些情况下,一个客户不想或者不能够直...

2016-06-29 20:35:37

阅读数:199

评论数:0

设计模式之状态模式

Java中的状态模式实例教程 原文链接 作者:Pankaj Kumar 译者:f0tlo 状态模式是一种行为设计模式。适用于当对象的内在状态改变它自身的行为时。 如果想基于对象的状态来改变自身的行为,通常利用对象的状态变量及if-else条件子句来扮演针对对象的不同行为。状态模式Context...

2016-06-29 20:18:05

阅读数:179

评论数:0

细数JDK里的设计模式

原文出处: javacodegeeks   译文出处:deepinmind    这也是篇老文了,相信很多人也看过。前面那些废话就不翻译了,直接切入正题吧~ 结构型模式: 适配器模式: 用来把一个接口转化成另一个接口。 java.util.Arrays#asList()jav...

2016-06-29 17:30:05

阅读数:240

评论数:0

设计模式之模板方法模式

模板方法模式 定义:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使的子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。将主要的方法定义为final,防止子类修改算法骨架,将子类必须实现的方法定义为abstract。而普通的方法(无final或abstract修饰)则...

2016-06-29 17:25:32

阅读数:185

评论数:0

Dungeon Game

题目描述: The demons had captured the princess (P) and imprisoned her in the bottom-right corner of a dungeon. The dungeon consists of M x N rooms lai...

2016-06-29 16:57:12

阅读数:216

评论数:0

Largest Divisible Subset

题目描述: Given a set of distinct positive integers, find the largest subset such that every pair (Si, Sj) of elements in this subset satisfies: Si % ...

2016-06-29 16:51:09

阅读数:665

评论数:0

设计模式之外观模式

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

2016-06-29 04:56:27

阅读数:266

评论数:0

设计模式之适配器模式

适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口。A d a p t e r 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 适用场景: 1、已经存在的类的接口不符合我们的需求; 2、创建一个可以复用的类,使得该类可以与其他不相关的类或不可预见的类(即那些接...

2016-06-29 04:32:30

阅读数:178

评论数:0

设计模式之组合模式

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

2016-06-28 21:09:00

阅读数:924

评论数:0

设计模式之迭代器模式

一、 引言   迭代这个名词对于熟悉Java的人来说绝对不陌生。我们常常使用JDK提供的迭代接口进行java collection的遍历: Iterator it = list.iterator(); while(it.hasNext()){  //using “it.next();”...

2016-06-28 20:20:29

阅读数:196

评论数:0

Best Time to Buy and Sell Stock

Best Time to Buy and Sell Stock Say you have an array for which the ith element is the price of a given stock on day i. If you were only permitted t...

2016-06-28 16:46:15

阅读数:277

评论数:0

设计模式之命令模式

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

2016-06-27 20:57:36

阅读数:273

评论数:0

六大设计原则

单一职责原则(Single Responsibility Principle) 定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发...

2016-06-27 20:54:03

阅读数:224

评论数:0

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