设计模式
文章平均质量分 81
iteye_11637
这个作者很懒,什么都没留下…
展开
-
不同的年龄阶段喜欢不同的女孩 (状态模式)
讨媳妇的男孩public class Boy { DreamGirl dreamGirl; //梦中的女孩 int ages; //自己的年龄 //找女朋友的方法 public void find_GirlFriend(){ dreamGirl.do_Something_for_b...2009-12-05 21:32:43 · 123 阅读 · 0 评论 -
dom4j中的单例策略
单例模式的实现方法有很多,饿汉和饱汉 ,Double-check Locking的模式, Registry of Singleton 模式这里介绍下单例策略在dom4j中就生成DocumentFactory工厂单例的时候就有单例策略的使用。 策略的介面如下:public interface SingletonStrategy { /** * ...2010-04-14 13:53:18 · 139 阅读 · 0 评论 -
OOD原则
单一职责原则(SRP)就一个类而言,应该仅有一个引起它变化的原因。 开放-封闭原则(OCP)软件实体(类、模块、函数等等)应该是可以扩展的,但是不可修改的。 1、 对于扩展是开放的这意味着模块的行为是可以扩展的。当应用的需求改变时,我们可以对模块进行扩展,使其具有满足那些改变的新行为。2、 对于更改是封闭的对模块的行为进行扩展时,不必改动模块的源代码或者...2010-03-09 16:51:33 · 104 阅读 · 0 评论 -
GRASP(基于职责设计对象)
GRASP(General Responsibility Assignment Software Patterns) 创建者(Creator)问题:谁创建了A?解决方案:如果以下条件之一为真时(越多越好),将创建类A实例的职责分配给B:l B“包含”或组成聚合了Al B记录Al B紧密地使用Al B具有A的初始化数据举例:比如在富客户端应用开发中,主程...2010-03-09 16:41:36 · 352 阅读 · 0 评论 -
女友的对话(中介者模式也叫调停者)
需要中介者对象作为通信控制平台 所操控的抽象对象 package mediator;public abstract class DreamGirl { //通知者的一个引用 protected Mediator mediator; protected String name; //中介者调用的方法,用来将别人发的消息通知给自己 publi...原创 2010-01-02 20:40:38 · 114 阅读 · 0 评论 -
请假 加薪(职责链模式)
学习笔记 职责链模式的结构 和装饰模式的结构是一样的。 请求类型public class Request { private String name; private String requestType; private int number; public String getName() { return name;...原创 2009-12-30 20:50:08 · 96 阅读 · 0 评论 -
如何换数据库(未使用任何框架)
因为之前使用的mysql 现在想转为Oracle实现 如何改能降低最大的工作量DaoFactory 类 里面组合了 Dao的实例ServiceFactory 类 里面 组合了 Service实例 ps:这两个类不算工厂类 应将类名Factory改成Contextg更合适具体下面贴代码 public class DaoFactory{ pr...原创 2009-12-18 04:25:11 · 95 阅读 · 0 评论 -
和女友的不愉快(访问者模式)
老鸟飞过哈 最近和女友很不和,特此用段模式写下自己的状况我和女友总是为遇到同样的状况而意见不合比如最近我总于有空余的时间,我想利用这点时间学习下ps,她非要我和她去苏州玩╮(╯▽╰)╭,其实我是很懒的一个人,不喜欢到处乱窜,她却说偶没情调╮(╯▽╰)╭ 言归正传先来看段比较糟糕的代码 伪代码自己随便写了 public Boy :Person{...2009-12-13 13:59:28 · 82 阅读 · 0 评论 -
起床做饭(观察者模式)
//通知者public class Boy { //状态 private String state; //观察者列表 public List<Girl> girls = new ArrayList<Girl>(); //通知 public void notifyGirls(){ for(Girl g : girls )...2009-12-10 23:02:22 · 124 阅读 · 0 评论 -
朋友做客(外观模式或者门面模式)
老鸟飞过 package facade;/** * * 在实际的开发过程中,往往需要将不同的两个层分离, * 比如mvc 三层架构 * 业务层与表现层、持久层与业务层之间建立外观Facade, * 这样为新的系统提供简单的接口。 */ //facade类 组合了 三个子系统(每个girl是独立的系统)public class Boy { ...2009-12-10 01:12:14 · 115 阅读 · 0 评论 -
城市的生活成本(模板方法)
public abstract class Boy { //收入 private double wages; /** * 模板方法模式:定义一个操作中算法的骨架,而将一些步骤延迟到子类中。 * 模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 */ //生活在这座城市的成本(具体算法) public void live_in_...2009-12-09 16:50:43 · 113 阅读 · 0 评论 -
女友多的好处2(工厂方法)
(老鸟略过)之前的一篇简单方法模式连接地址http://ysen.iteye.com/admin/blogs/542437先来说说简单方法模式明显的优缺点优点:将不同的业务实例在工厂内部实现,客户端只需要传个String类型的值就ok缺点:如果增加新的女友(业务类型)那么就要修改switch分支条件(我这里用的if..else判断)这就破坏了设计模式的开放封闭原则,工厂方法模式...2009-12-08 01:01:03 · 110 阅读 · 0 评论 -
带女友干活(代理模式)
老鸟跳过请跳过, 最近无聊,贴一些自己过去学习设计模式后,自己写的一些Demo 接口:public interface Do_something { //做饭 public void prepare_food(); //打扫 public void clean_up(); //买食物 public void buy_food();}...2009-12-06 23:22:19 · 122 阅读 · 0 评论 -
老公爱吃的菜(策略模式)
将策略的上下文的构造函数换用简单工厂模式的话就将业务对象封装起来了,客户端就只要了解Boy这个对象就ok了 ,不需要自己去声明接口DreamGir的业务对象l。 //上下文public class Boy { private DreamGirl girl; Boy(DreamGirl girl) { this.girl = girl; } publ...2009-12-06 00:09:51 · 146 阅读 · 0 评论 -
陪她们依次去旅游(装饰模式)
//梦中情人 呵呵public class DreamLover extends Boy{ //梦姑的梦郎 protected Boy boy; public Boy getBoy() { return boy; } public void setBoy(Boy boy) { this.boy = boy; } //和梦郎去旅游 p...2009-12-05 21:52:28 · 110 阅读 · 0 评论 -
女友多的好处 (简单工厂模式)
java 的switch 语句的case 匹配为什么不能像delphi一样 支持String类型 哦 这里可以通过反射的话效果更佳 // 女友工厂public class DreamGirlCreatFactory { public static DreamGirl creatDreamGirl(String girlName){ if...2009-12-05 21:47:35 · 96 阅读 · 0 评论 -
email 发送接口
企业邮件发送有自己的发送平台,其它系统包括业务系统常常将发送邮件的任务交给该平台。该平台通过activemq 建立 queue 接受外围系统的发来的报文格式。报文格式如下:"[{\"sys\":\"fssc\", \"key\":\"QWESAD456\", \"type\":\"1\", \"email\":\"ysen@xxxx.co2012-02-29 17:48:57 · 387 阅读 · 0 评论