![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Design Mode
lovetopceo
这个作者很懒,什么都没留下…
展开
-
原始模型模式
[code="java"]package com.Mapking;/*** JAVA设计模式:原型--复制建立对象实例* 有了Product 接口 才可能进行复制。* 这个接口继承java.lang.Cloneable接口。* 利用clone方法可自动对实现此接口的类进行复制。* use方法是“使用”的部分,“使用”代表何种意义需看子类的实现。* createCon...2010-04-28 13:24:49 · 98 阅读 · 0 评论 -
单例模式
定义: Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。 在很多操作中,比如建立目录 数据库连接都需要这样的单线程操作。 还有, singleton能够被状态化; 这样,多个单态类在一起就可以作为一个状态仓库一样向外提供服务,比如,你要论坛中的帖子计数器,每次浏览一次需要计数,单态类能否保持住这个计数,并且能synchronize的安...2010-04-28 13:54:00 · 78 阅读 · 0 评论 -
策略模式
当我们掌握了Java的语法,当我们了解了面向对象的封装、继承、多态等特性,当我们可以用Swing、Servlet、JSP技术构建桌面以及Web应用,不意味着我们可以写出面向对象的程序,不意味着我们可以很好的实现代码复用,弹性维护,不意味着我们可以实现在维护、扩展基础上的代码复用。一把刀,可以使你制敌于无形而于江湖扬名,也可以只是一把利刃而使你切菜平静。Java,就是这把刀,它的威力取决于你使用的方...2010-04-28 13:55:52 · 63 阅读 · 0 评论 -
状态模式
一、引子 状态模式自身结构非常简单——前面刚刚介绍了几个结构比较简单的设计模式,和他们一样,状态模式在具体实现上留下了可变换的余地。我前面已经介绍过它的孪生兄妹策略模式了,大家可以两者比较着阅读。本文将会讨论两者的区别。 二、定义与结构 GOF《设计模式》中给状态模式下的定义为:允许一个对象在其内部状态改变时改变它的行为。这个对象看起来似乎修改了它的类。看起来,状态...2010-04-28 13:58:41 · 73 阅读 · 0 评论 -
调停者模式
1. 定义 调停者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显作用。从而使他们可以松散偶合。当某些对象之间的作用发生改变时,不会立即影响其他的一些对象之间的作用。保证这些作用可以彼此独立的变化。调停者模式将多对多的相互作用转化为一对多的相互作用。调停者模式将对象的行为和协作抽象化,把对象在小尺度的行为上与其他对象的相互作用分开处理。2. 使用的原因 ...2010-04-28 14:05:51 · 122 阅读 · 0 评论 -
工厂方法模式
一 、工厂方法(Factory Method)模式 工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。 二、 工厂方法模式角色与结构 抽象工厂(Cre...2010-04-28 14:07:34 · 65 阅读 · 0 评论 -
合成模式
合成模式把部分和整体关系用树结构表示,是属于对象的结构模式。合成模式要对组合的对象进行管理,所以在一定位置给予对象的相关管理方法,如:add(),remove()等.合成模式中对象的管理有两种方案。1.安全方式:此方式只允许树枝构件有对象的管理方法。2.透明方式:此方式只允许树枝和树叶都有对象的管理方法,但树叶对象中的管理方法无实际意义。一.UML示意图[img]http://...2010-04-28 14:09:27 · 128 阅读 · 0 评论 -
解释器模式
一、引子 其实没有什么好的例子引入解释器模式,因为它描述了如何构成一个简单的语言解释器,主要应用在使用面向对象语言开发编译器中;在实际应用中,我们可能很少碰到去构造一个语言的文法的情况。 虽然你几乎用不到这个模式,但是看一看还是能受到一定的启发的。 二、定义与结构 解释器模式的定义如下:定义语言的文法,并且建立一个解释器来解释该语言中的句子。它属于类的行为...2010-04-28 14:15:49 · 69 阅读 · 0 评论 -
访问者模式
一、引子 对于系统中一个已经完成的类层次结构,我们已经给它提供了满足需求的接口。但是面对新增加的需求,我们应该怎么做呢?如果这是为数不多的几次变动,而且你不用为了一个需求的调整而将整个类层次结构统统地修改一遍,那么直接在原有类层次结构上修改也许是个不错的主意。但是往往我们遇到的却是:这样的需求变动也许会不停的发生;更重要的是需求的任何变动可能都要让你将整个类层次结构修改个底朝天……...2010-04-28 14:17:30 · 70 阅读 · 0 评论 -
模板方法模式
一、引子 这是一个很简单的模式,却被非常广泛的使用。之所以简单是因为在这个模式中仅仅使用到了继承关系。继承关系由于自身的缺陷,被专家们扣上了“罪恶”的帽子。“使用委派关系代替继承关系”,“尽量使用接口实现而不是抽象类继承”等等专家警告,让我们这些菜鸟对继承“另眼相看”。其实,继承还是有很多自身的优点所在。只是被大家滥用的似乎缺点更加明显了。合理的利用继承关系,还是能对你的系...2010-04-28 14:19:00 · 72 阅读 · 0 评论 -
Java与模式中关于简单工厂和桥梁模式
近日仔细看了“Java与模式”一书,收获不小。 提出几点改进意见,也是对其中模式的讨论。 一、该书中“简单工厂”的提出没有必要,且给人以误导。 该书定义简单工厂表明:工厂直接创建具体产品,图示如下:[img]http://dl.iteye.com/upload/attachment/241519/b0771aac-b31d-3e9d-be...2010-04-28 14:23:16 · 123 阅读 · 0 评论 -
简单工厂模式
[code="java"]1. public class SteamedBread{ public SteamedBread() // 构造方法 { } private double price=0.5; public double Price { get { return price; } ...2010-04-28 13:52:44 · 73 阅读 · 0 评论 -
装饰模式
【装饰模式应用场景举例】 比如在玩“极品飞车”这款游戏,游戏中有对汽车进行喷涂鸦的功能,而且这个喷涂鸦是可以覆盖的,并且覆盖的顺序也影响到最后车身的显示效果,假设现在喷涂鸦具有2种样式: (1)红色火焰 (2)紫色霞光 如果使用“继承父类”设计这样的功能,那么类图就像如下的这样: 从图中可以看到使用继承来实现这种功能,并且是2种涂鸦样式,就需要创建4个子类,如果喷涂...2010-04-28 13:50:51 · 67 阅读 · 0 评论 -
建造模式
一、引子 前几天陪朋友去装机店攒了一台电脑,看着装机工在那里熟练的装配着机器,不禁想起来了培训时讲到的建造模式。作为装机工,他们不用管你用的CPU是Intel还是AMD,也不管你的显卡是2000千大元还是白送的,都能 挛宄 淖芭湓谝黄稹 惶≒C就诞生了!当然对于客户来说,你也不知道太多关于PC组装的细节。这和建造模式是多么的相像啊! 今天就来探讨一下建造模式 二...2010-04-28 13:49:18 · 75 阅读 · 0 评论 -
适配器模式
小结:适配器模式用插座的适配器最为形象,插头是2口的,插座是3口的,中间的适配器就是同时支持2口和三口的。从对象的角度就是一般继承一个实现一个,总之,前方百计把两者都关联起来 。通常,客户类(clients of class)通过类的接口访问它提供的服务。有时,现有的类(existing class)可以提供客户类的功能需要,但是它所提供的接口不一定是客户类所期望的。这是由于现有的接口...2010-04-28 13:28:26 · 101 阅读 · 0 评论 -
责任链模式
一、引言 初看责任链模式,心里不禁想起了一个以前听过的相声:看牙。说的是一个病人看牙的时候,医生不小心把拔下的一个牙掉进了病人嗓子里。病人因此楼上楼下的跑了好多科室,最后无果而终。 责任链模式就是这种“推卸”责任的模式,你的问题在我这里能解决我就解决,不行就把你推给另一个对象。至于到底谁解决了这个问题了呢?我管呢! 二、定义与结构 从名字上大概也能...2010-04-28 13:29:58 · 69 阅读 · 0 评论 -
JAVA设计模式与MM
设计模式做为程序员的“内功心法”,越来越受到.net 社区的重视,这种变化是很可喜的,Java社区走在了我们的前面,但这种状况 也许有一天会发生改变。 从追MM谈Java的23种设计模式 1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯 德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基...2010-04-28 13:33:55 · 69 阅读 · 0 评论 -
观察者模式
引子 还记得警匪片上,匪徒们是怎么配合实施犯~罪的吗?一个团伙在进行盗~窃的时候,总 有一两个人在门口把风——如果有什么风吹草动,则会立即通知里面的同伙紧急撤退。也许放风的人并不一定认识里面的每一个同伙;而在里面也许有新来的小弟不认识这个放风的。但是这没什么,这个影响不了他们之间的通讯,因为他们之间有早已商定好的暗号。呵呵,上面提到的放风者、偷~窃者之间的关系就是观察者模式在现实中的...2010-04-28 13:36:37 · 68 阅读 · 0 评论 -
备忘录模式
一、引子 俗话说:世上难买后悔药。所以凡事讲究个“三思而后行”,但总常见有人做“痛心疾首”状:当初我要是……。如果真的有《大话西游》中能时光倒流的“月光宝盒”,那这世上也许会少一些伤感与后悔——当然这只能是痴人说梦了。 但是在我们手指下的程序世界里,却有的后悔药买。今天我们要讲的备忘录模式便是程序世界里的“月光宝盒”。 二、定义与结构 备忘录(Mem...2010-04-28 13:38:08 · 67 阅读 · 0 评论 -
迭代子模式
迭代这个名词对于熟悉Java的人来说绝对不陌生。我们常常使用JDK提供的迭代接口进行java collection的遍历 1.迭代器角色定义了遍历的接口,但是没有规定由谁来控制迭代。在Java collection的应用中,是由客户程序来控制遍历的进程,被称为外部迭代器;还有一种实现方式便是由迭代器自身来控制迭代,被称为内部迭代器。外部迭代器要比内部迭代器灵活、强大,而且内部迭代器在j...2010-04-28 13:39:02 · 76 阅读 · 0 评论 -
命令模式
Java深入到一定程度,就不可避免的碰到设计模式这一概念,了解设计模式,将使自己对java中的接口或抽象类应用有更深的理解.设计模式在java的中型系统中应用广泛,遵循一定的编程模式,才能使自己的代码便于理解,易于交流,Command(命令模式)模式是比较常用的一个模式.Command命令模式: Command模式通过被称为Command的类封装了对目标对象的调用行为以及调用参数。将一个请求封...2010-04-28 13:41:53 · 174 阅读 · 0 评论 -
享元模式
Java深入到一定程度,就不可避免的碰到设计模式这一概念,了解设计模式,将使自己对java中的接口或抽象类应用有更深的理解.设计模式在java的中型系统中应用广泛,遵循一定的编程模式,才能使自己的代码便于理解,易于交流,Flyweight(享元模式)模式是比较常用的一个模式。Flyweight模式是一个提高程序效率和性能的模式,会大大加快程序的运行速度.应用场合很多:比如你要从一个数据库中读取...2010-04-28 13:43:34 · 208 阅读 · 0 评论 -
门面模式
门面模式应用背景:为复杂的子系统提供一个简单的接口门面模式包括两种角色:门面角色和子系统角色. 门面角色:客户端可以调用的方法,此角色知晓一个或者多个子系统角色的功能和责任 子系统角色:可以同时包括一个或者多个子系统角色,不是单独的一个类,而是类的集合下面看一个例子: 门卫通常需要抄作多种仪器,包括每种仪器的具体操作,这样子来说对于门卫...2010-04-28 13:45:18 · 77 阅读 · 0 评论 -
代理模式
代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式一般涉及到的角色有:抽象角色:声明真实对象和代理对象的共同接口;代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能代替真实对...2010-04-28 13:47:08 · 79 阅读 · 0 评论 -
桥梁模式
一、 桥梁(Bridge)模式桥梁模式是一个非常有用的模式,也是比较复杂的一个模式。熟悉这个模式对于理解面向对象的设计原则,包括"开-闭"原则(OCP)以及组合/聚合复用原则(CARP)都很有帮助。理解好这两个原则,有助于形成正确的设计思想和培养良好的设计风格。桥梁模式的用意【GOF95】在提出桥梁模式的时候指出,桥梁模式的用意是"将抽象化(Abstraction)与实现化...2010-04-28 14:29:48 · 92 阅读 · 0 评论