改善现有软件设计-重构与模式
NationSoftware
在攻读软件工程专业(本科)。对编程语言:C /Java 感兴趣。了解:C STL/MFC(在自学),J2EE开源框架(在自学)。喜爱:软件设计与系统架构(在自学)。对计算机硬件与网络也有一定的研究。业余时间爱看自己的书库(软件方向类书籍)。性格内外向,爱好计算机与体育,喜欢慢跑。生活态度积极,对计算机狂热爱好。学习计算机已有近6个年头,从职业高中开始一直到现在。欢迎各位进行学术交流。
展开
-
使用static类型产生singleton(单件;单列)模式改善软件设计
[color=red]这里讨论的是JAVA环境中,使用static关键字实现singleton模式的问题。[/color]singleton模式可以保证对象的实例(如:People p=new People(),People对象的实例p)在其生命周期内是唯一存在的。[code="java"] public class Singleton { pr...2009-11-06 09:13:12 · 203 阅读 · 0 评论 -
使用Facade(外观)模式改善现有软件设计—混乱变简单
Facade(外观)模式就是定义一个接口,之后把乱七八糟的类提统一起来,提供一个统一的接口:[img]http://dl.iteye.com/upload/attachment/174352/f5303d9a-0721-3283-a182-b38b98c5c5fc.jpg[/img]DAO层看起来更像个外观。我们一般把DAO层封起来,之后就业务层去掉用它。比如:[cod...2009-11-30 16:09:05 · 132 阅读 · 0 评论 -
使用Adapter(适配器)模式兼容原本不兼容
这个模式有些模糊,作用就是匹配二者不同,其实通过修改代码可以更简洁的实现修改,但是问题出在如果不能修改代码的时候,我们应该怎么办?先看看代码,首先是2个接口:[code="java"]package moshi.adapter;public interface SayGood { public void sayGood(); }[/code][cod...2009-11-30 15:34:26 · 310 阅读 · 0 评论 -
java回调
如果我们要测试一个类的方法的执行时间,通常我们会这样做: [code="java"]public class TestObject { /** * 一个用来被测试的方法,进行了一个比较耗时的循环 */ public static void testMethod(){ for ( int i=...原创 2009-11-29 16:06:50 · 124 阅读 · 0 评论 -
Prototype(原型)模式—解决对象创建时的昂贵
[code="java"][quote]Prototype(原型)模式:当创建给定类的实例的过程很昂贵或复杂时,使用Prototype(原型)模式。[/quote]以下内容来自板桥里人说模式。Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它...原创 2009-11-19 12:48:26 · 131 阅读 · 0 评论 -
使用Template(模板)模式封装改变
这个模式超级简单,不过怀疑在不带接口特性的语言中使用广泛,其实目的就是封装改变,怀疑在JAVA中那些对抽象类一直比较怀念的人会使用,而我一般则会比较多的使用接口,不过Template对于策略模式有所不同的就是,它在实现上更简单,不需要拖泥带水,原因是在抽象类中可以写实现方法,而接口中则不可以,比如把实现延迟到继承类中。[code="java"]public abstract class S...2009-11-19 10:55:18 · 219 阅读 · 0 评论 -
使用Factory(工厂)模式改善现有软件设计—对象产生器
其实设计模式就是一个不断转移依赖,不断进行抽象的一个产物,把个部分零散掉,之后在靠一些规则组合在一起,完成一个本应该几行代码完成的事情,这样做必然会带来一些设计上的复杂,但是各各部分被打散之后偶合更小,一般在一个代码里修改代码,而不用变动其它地方的代码。 其实工厂模式真的很简单,但是实现工厂模式就有很多种方法了,一般来说,现在有了DI框架,完全可以抛弃工厂模式,而且现在JAVA语...2009-11-18 12:02:58 · 186 阅读 · 0 评论 -
使用Decorator(装饰)模式改善现有软件设计—运行期给对象添加新功能
[quote]Decorator模式是一种结构型模式,它的作用是动态得给一个对象添加额外职责。Decorator模式,即Wrapper模式,其强制控制作用是在不改动一个类的代码或者不破坏一个类的接口的情况下为该类添加功能。当你想一个类具有更多功能的时候,使用Decorator模式意味着增加功能后的版本不一定要通过扩展类来重用现有功能。[/quote]Decorator模式绝就绝在动态给对象...2009-11-16 15:47:06 · 157 阅读 · 0 评论 -
使用Observer模式改善现有软件设计——构建简便的通知
[quote]Observer又叫观察者模式,它的意图是当一个对象进行改变时,所有依赖于它的对象都可以得到通知。(观察者模式定义了一种一对多地依赖模式,让多个观察者同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有的观察者对象,使它们能够自动更新自己。这里的主题对象就是指通知者,又叫做发布者。观察者又叫订阅者。)[/quote]听起来这个模式似乎非常有用,它属于对象行为型模式...2009-11-12 17:42:35 · 132 阅读 · 0 评论 -
迭代器(Iterator)模式
迭代器(Iterator)是一种设计模式。它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。在JAVA的Collection框架中已经实现,它提供了这几个接口方法:[code="java"]/* * @(#)Iterator.java 1.27 06/07/24 * * Copyright 2006 Sun Microsystems, Inc. All rig...2009-12-02 11:49:17 · 121 阅读 · 0 评论