-
设计模式
菜鸟用java实现23种设计模式的学习过程,一步一步
最近更新文章
定义:提供了一个统一接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用
最少知识原则:只和你的密友谈话。
解释:不要让太多的类耦合在一起,免得修改系统中一部分,会影响到其它部分。如果许多类之间相互依赖,那么这个系统就会变得易碎。
例子:
用户在键盘上点击开机键,然后加载cpu,内存,硬盘驱动等信息,但是,客户只点了开机键,其它 ...
有1586人浏览
2014-03-01 18:11
1 定义:
适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法在一起工作的两个类能够在一起工作
2 解决的问题
使接口不兼容的类可以在一起工作。
3 模式中的角色
1)目标接口(target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。
2)需要被适配的类(adaptee):被适配 ...
有1469人浏览
2014-02-27 22:31
原型模式是创建型模式的一种,其特点在于通过“复制”一个已经存在的实例来返回新的实例,而不是新建实例。被复制的实例就是我们所称的“原型”,这个原型是可定制的。
原型模式多用于创建复杂的或者耗时的实例,因为这种情况下,复制一个已经存在的实例使程序运行更高效;或者创建值相等,只是命名不一样的同类数据。
原型模式的核心是一个clone()方法,通过该方法进行对象拷贝,java提供了一个clon ...
有1892人浏览
2014-01-12 11:18
到网上找这个模式的例子,不知为何,突然觉得这个和之前写的装饰器模式特别像
感觉都做了一件:方法增强!
代理模式:为其他对象提供一种代理以控制对这个对象的访问.
这里要理解【控制】为何物,又是如何做到控制的。
代理模式有以下角色:
抽象角色:声明真实对象和代理对象的共同接口;
代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对 ...
有1561人浏览
2013-08-30 14:36
装饰模式能够实现动态的为对象添加功能,是从一个对象外部来给对象添加功能。通常给对象添加功能,要么直接修改对象添加相应的功能,要么派生对应的子类来扩展,抑或是使用对象组合的方式。显然,直接修改对应的类这种方式并不可取。在面向对象的设计中,而我们也应该尽量使用对象组合,而不是对象继承来扩展和复用功能。装饰器模式就是基于对象组合的方式,可以很灵活的给对象添加所需要的功能。装饰器模式的本质就是动态组合。 ...
有1343人浏览
2013-08-29 14:44
命令模式
将来自客户端的请求传入一个对象,从而使你可用不同的请求对客户进行参数化。用于“行为请求者”与“行为实现者”解耦,可实现二者之间的松耦合,以便适应变化。分离变化与不变的因素。
在面向对象的程序设计中,一个对象调用另一个对象,一般情况下的调用过程是:创建目标对象实例;设置调用参数;调用目标对象的方法。
但在有些情况下有必要使用一个专门的类对这种调用过程加以封装,我们 ...
有1435人浏览
2013-08-28 16:12
1. 简单工厂模式
简单工厂其实不是一个设计模式,反而比较像是一种编程习惯。
我的理解:简单工厂模式只是把类实例化的方法【new()】放在了工 ...
有2089人浏览
2013-07-21 21:22
单例模式应该是23种设计模式中最简单的一种。这里的简单我觉得应该是代码实现上的简单和思维的简单:类只提供一个全局变量。但是虽然简单,但若仔细研究,亦有万千变化,深藏奥妙。
1. 定义:
单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
这个类称为单例类
2. 单例模式 特点
a. 单例类只可有一个实例
b.单例类必须自己创建自己这惟一的实例
c.单 ...
有2049人浏览
2013-07-16 12:13
最近这段时间主要是写设计模式,因为本人也是初学,本着和大家切磋交流的虔诚之心,
文中难免有偏颇之处
希望大家可以批评指正,共同进步,最终助我进步。
我觉得设计模式可能更偏重于思想,可能在代码的实现上会各有不同,如果你在开发中
利用了框架又会有所不同,当然框架本身也会利用到了各种了模式,如果我们可以掌握
设计模式,一方面在解决问题时候会多有一种思路也会让自己的代码显得更加优雅,另
...
有2827人浏览
2013-07-16 09:26
1. 概述 观察者(observer)模式是对象的行为型模式,又叫做发表-订阅(publish/subscribe)模式、模型-视图(model/view)模式、源-收听者(source/li ...
有1752人浏览
2013-07-15 10:23
责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任
我的理解是:消息在链上不断的传递,直到遇到一个可以处理此消息的处理器,【这个处理器在链上】
或者说,消息 ...
有1375人浏览
2013-07-12 15:06
模板模式
定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法中的某些特定步骤
我的理解模板模式,定义了方法执行的总体步骤,但每一步的具体实现由子类复写
关键点:模板方法用关键字final 需要复写的方法用abstract 修饰
example: 考试:三步:发卷,做卷,交卷 现在我们实现考历史和考数学的情况
有1700人浏览
2013-07-11 16:57
一、设计模式的分类
总体来说设计模式分为三大类:
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结� ...
有2181人浏览
2013-07-11 13:35
- 专栏创建者:
- 创建时间:2013-08-21 10:56:15
- 专栏文章数:16篇
- 专栏被浏览:28522 次
本专栏热门文章
最新评论
给点个赞,通俗易懂
java_cache 评论了
java_cache 评论了
...
打不死小神童 评论了
打不死小神童 评论了
...
yt_lemon 评论了
yt_lemon 评论了
这里readbooks数据在对象间的影响你设置了(arraylist) t ...
oezx 评论了
oezx 评论了
这个例子好像不太恰当啊..原定义:定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改 ...
crazzylee 评论了
crazzylee 评论了
都是书上抄来的。实际上是一点源码都不看的。jdk里面,有好几个抽象工厂模式,那边的说法应该是provi ...
ijlkdwg 评论了
ijlkdwg 评论了
小小年纪,有如此认知,必成大器!
huanglei7211 评论了
huanglei7211 评论了
不错不错,楼主写的不错,例子不错哦
tiantianhappy 评论了
tiantianhappy 评论了
maizi11 写道 恩 简单易懂!主要是领会了意思~加油噢
wangkechao.dream 评论了
wangkechao.dream 评论了
恩 简单易懂!主要是领会了意思~加油噢
maizi11 评论了
maizi11 评论了