- 博客(15)
- 收藏
- 关注
原创 设计模式原则
计算机是一门所有的问题都可以通过增加一个中间层来解决的学科。在设计模式中,个人觉得总的原则如下:一件复杂的事情有多种实现方式,而这些实现方式的优雅度按如下顺序递增。 1. 一个方法全部搞定,包含所有的逻辑 2. 抽取方法中相对独立和完整的模块,封装在单独的方法中,多个方法来搞定;这样,当有业务变化时,我们需要修改的只是一个方法,而不需要小心翼翼地修改上千行的一个方法。 3. 如...
2011-09-24 18:08:31 69
原创 common-configuration——转载
一 使用原生方式读取配置文件 1 文件系统加载 Java代码 InputStream in = new FileInputStream("config.properties"); Properties p = new Properties(); p.load(in); 2 类加载方式 A 与类同级目录 Java代码 I...
2011-09-20 19:34:19 184
原创 Builder生成器模式1——转载
Builder模式定义: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示.Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就可以构建它们.用户不知道内部的具体构建细节.Builder模式是非常类似抽象工厂模式,细微的区别大概只有在反复使用中才能体会到.为何使用?是为了将构建复杂对象的过程和它的部件解耦.注意: 是解耦过程...
2011-09-17 16:28:40 96
原创 Builder生成器模式2——转载
Builder生成器模式是一种创建型模式,它主要是应对项目中一些复杂对象的创建工作。所谓“复杂对象”,是只:此对象中还含有其它的子对象。Builder模式所面对的情况是:各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将他们组合在一起的算法却相对稳定。简单的说:子对象变化较频繁,对算法相对稳定。 这是解决一个复杂对象的创建...
2011-09-17 16:24:55 94
原创 代理模式————转载
一、引子我们去科技市场为自己的机器添加点奢侈的配件,很多DIYer都喜欢去找代理商,因为在代理商那里拿到的东西不仅质量有保证,而且价格和售后服务上都会好很多。客户通过代理商得到了自己想要的东西,而且还享受到了代理商额外的服务;而生产厂商通过代理商将自己的产品推广出去,而且可以将一些销售服务的任务交给代理商来完成(当然代理商要和厂商来共同分担风险,分配利润),这样自己就可以花更多的心思在产品...
2011-09-17 12:55:26 80
原创 桥接模式2——转载
一、 桥梁(Bridge)模式桥梁模式是一个非常有用的模式,也是比较复杂的一个模式。熟悉这个模式对于理解面向对象的设计原则,包括"开-闭"原则(OCP)以及组合/聚合复用原则(CARP)都很有帮助。理解好这两个原则,有助于形成正确的设计思想和培养良好的设计风格。注:《Java与模式》一书认为Bridge模式不是一个使用频率很高的模式,我不太赞同,我认为Bridge模式中蕴涵了很多设计模...
2011-09-16 17:32:18 109
原创 桥接模式——转载
Bridge桥接模式是一种结构型模式,它主要应对的是:由于类型的固有罗辑,使得类型具有两个或两个以上的纬度变化。也就是要求抽象不应依赖于实现细节,实现细节应依赖于抽象。 《设计模式》中说到将抽象部分与实现部分分离,使他们可以独立的变化。 举个例子更清楚些,好像我们平时玩的游戏中有PS版的,但是不是大家都有PS。这时我们等一段时间,一般会出PC版...
2011-09-16 17:30:15 80
原创 中介者模式——转载
一、中介者模式简介(Brief Introduction)中介者模式(Mediator Pattern),定义一个中介对象来封装系列对象之间的交互。中介者使各个对象不需要显示地相互引用,从而使其耦合性松散,而且可以独立地改变他们之间的交互。 Define an object that encapsulates how a set of objects interact. Mediato...
2011-09-15 20:50:12 87
原创 责任链模式——转载
一、引言初看责任链模式,心里不禁想起了一个以前听过的相声:看牙。说的是一个病人看牙的时候,医生不小心把拔下的一个牙掉进了病人嗓子里。病人因此楼上楼下的跑了好多科室,最后无果而终。 责任链模式就是这种“推卸”责任的模式,你的问题在我这里能解决我就解决,不行就把你推给另一个对象。至于到底谁解决了这个问题了呢?我管呢! 二、定义与结构从名字上大概也能猜出这个模式的...
2011-09-14 19:49:59 64
原创 观察者模式——转载
一、引子还记得警匪片上,匪徒们是怎么配合实施犯罪的吗?一个团伙在进行盗 窃的时候,总 有一两个人在门口把风——如果有什么风吹草动,则会立即通知里面的同伙紧急撤退。也许放风的人并不一定认识里面的每一个同伙;而在里面也许有新来的小弟不认识这个放风的。但是这没什么,这个影响不了他们之间的通讯,因为他们之间有早已商定好的暗号。呵呵,上面提到的放风者、偷窃者之间的关系就是观察者模式在现...
2011-09-14 00:03:49 81
原创 模板方法与策略模式
模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。 注意:在模板方法中,我们可以定义一个骨架方法,用来确定整个算法的骨架和流程;可以在超类中实现一些固定的步骤,然后将一些可变的步骤当作抽象方法,由不同子类来提供不同的实现;同时,对于算法中的一些可选步骤,我们可以通过使用一些钩子方法(一般在父类提供...
2011-09-11 00:47:46 95
原创 策略模式
一、引子18日下午3时一刻,沈阳,刚刚下完一场几年罕见的大雪,天气格外的冷,公交车在“车涛汹涌”的公路上举步维艰,我坐在里面不时的看表——回公司的班车就要发车了,我还离等车的地方好远……。都是这可恶的天气打乱了我的计划!看来我要重新盘算下下了公交车的计划了:如果在半点以前能够到达等班车的地方,我就去旁边卖书报的小店里面买份《南方周末》,顺便逼逼严寒;如果可恶的公交到时候还不能拱到的话,...
2011-09-11 00:39:11 73
原创 工厂方法模式与抽象工厂模式
本文是转的一、引子 话说十年前,有一个暴发户,他家有三辆汽车——Benz奔驰、Bmw宝马、Audi奥迪,还雇了司机为他开车。不过,暴发户坐车时总是怪怪的:上Benz车后跟司机说“开奔驰车!”,坐上Bmw后他说“开宝马车!”,坐上Audi说“开奥迪车!”。你一定说:这人有病!直接说开车不就行了?! 而当把这个暴发户的行为放到我们程序设计中来时,会发现这是一个普遍存...
2011-09-10 23:55:58 97
原创 适配器模式与装饰者模式
适配器模式:将一个类的接口,转换成客户期望的另外一个接口。适配器让原本接口不兼容的类可以很好的合作。 装饰者模式:动态的将责任附加到对象上(因为利用组合而不是继承来实现,而组合是可以在运行时进行随机组合的)。若要扩展功能,装饰者提供了比继承更富有弹性的替代方案(同样地,通过组合可以很好的避免类暴涨,也规避了继承中的子类必须无条件继承父类所有属性的弊端)。特点:1. 装饰者和被...
2011-09-06 20:15:24 326
原创 command模式
command模式:command模式允许我们将动作封装成命令对象(这个对象可能是在一个接受者上绑定了一组操作,也可能是自己实现了一组功能,或者其是个组合命令),这样一来我们就可以随心所意的存储、传递和调用它们(甚至我们可以在该对象创建很久之后或者在另外一个线程上来调用它),我们的线程池即是一个最好的例子。最关键的还是把命令的请求者和命令的接受者解藕了。...
2011-09-01 21:01:40 74
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人