设计模式
wanxkl1
这个作者很懒,什么都没留下…
展开
-
装饰着模式
该模式挺难理解,想了快一晚上。。。才算有点眉目。。。然后照搬一些java.io类还有servlet里面的过滤器终于有所领悟。使用接口实现,下面给出代码:[code="java"] /** *//** *定义被装饰者 **/ public interface Human { public void wearClothes(); public v...原创 2011-12-28 09:27:21 · 82 阅读 · 0 评论 -
命令模式
命令模式:命令模式有三个角色:1、接收者。2、命令者。3、调用者这三个的关系是:接收者自己有方法,有属性,有自己的行为。命令者定义为一个接口,实现该接口的类持有接收者类,通过构造加载进来,同时有一个execute()方法,里面调用接收者的方法。调用者持有命令者接口,通过set方法加载进来,并有一个action()方法这里和execute()方法区分,里面调用execute()方法,所以调用...原创 2011-12-28 09:33:10 · 73 阅读 · 0 评论 -
单例模式
[code="java"] /** *//** * @author lx * 线程不安全的单例,试想两个线程都进入了if(singleton==null)块里这个时候会初始化两个对象,这只在第一次调用的时候会产生 */ public class Unsafe_singleton { private static Unsafe_singleton sing...原创 2011-12-28 09:40:19 · 86 阅读 · 0 评论 -
异常,错误码,防御式编程
程序总是有一条主路径,称为happy path,在happy path之外,需要例外处理,常见方式有异常,错误码,防御式编程 设小写字母对应happy path,大写字母对应例外,数字对应外部代码,->表示调用 最普通的就是a->b->c->1->2这样的程序 然后给他加上例外处理 用异常就是a(catch B){}(catch C){}->b->c->1->2 用防御...原创 2011-12-31 13:28:41 · 138 阅读 · 0 评论 -
桥梁模式
桥梁模式的用意是将问题的抽象和实现分离开来实现,通过用聚合代替继承来解决子类爆炸性增长的问题。 比如我们有一个画图程序 有2个图形(Circle Rectangle )和2种画图方法(Drawing1 Drawing2) 图形可能会使用Drawing1来画图 也可能使用Drawing2来画图 在这个画图程序中有两个可变因素 一个是图形的种类 有可能会增加新的图形 另一个是画图方法 可能...原创 2011-12-31 13:41:38 · 61 阅读 · 0 评论 -
桥梁与策略
桥接(Bridge)模式是结构型模式的一种,而策略(strategy)模式则属于行为模式。以下是它们的UML结构图。在桥接模式中,Abstraction通过聚合的方式引用Implementor。 在策略模式中,Context也使用聚合的方式引用Startegy抽象接口。 从他们的结构图可知,在这两种模式中,都存在一个对象使用聚合的方式引用另一个对象的抽象接口的情况,而且该...原创 2011-12-31 14:04:44 · 126 阅读 · 0 评论 -
适配器模式
将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 --- 《设计模式》GOF Adapter模式的宗旨就是,基于现有类所提供的服务,向客户端提供接口,以满足客户的期望。---《java设计模式 》 对软件系统中,如果要复用以前的“现存对象”,但是这些对象所提供的接口并不一定能适应我们的新...原创 2011-12-31 14:24:37 · 105 阅读 · 0 评论 -
装饰者模式
MM们要过生日了 ,怎么也得表示下吧。最起码先送个蛋糕。蛋糕多种多样了。巧克力,冰淇淋,奶油等等。这都是基本的了 ,再加点额外的装饰,如蛋糕里放点花。放贺卡。放点干果吃着更香等等。看看我是如何设计的。 我想既然是蛋糕,那我就把蛋糕作为一个抽象类,剩下的蛋糕子类型来继承它,每个子类都有吃该蛋糕的感觉 ^_^,看起来真的不错。蛋糕的子类分别是奶酪蛋糕,巧克力蛋糕,冰淇淋蛋糕,插花的冰淇淋蛋糕...原创 2011-12-31 14:35:13 · 66 阅读 · 0 评论