- 浏览: 122155 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
roychenyi:
<br>1<br>2<br> ...
pager-taglib 使用说明 -
roychenyi:
<br>换行<br>换行<br& ...
pager-taglib 使用说明 -
wangwenfei1985:
[flash=200,200][url][img][list] ...
pager-taglib 使用说明 -
时光后19:
,看到你这样真好,
FileNet调用webService配置 -
ysen:
大sql导入mysql
如果是SQL格式的。有的可能上100 ...
mysqldump备份详解
老鸟飞过
package facade; /** * * 在实际的开发过程中,往往需要将不同的两个层分离, * 比如mvc 三层架构 * 业务层与表现层、持久层与业务层之间建立外观Facade, * 这样为新的系统提供简单的接口。 */ //facade类 组合了 三个子系统(每个girl是独立的系统) public class Boy { private BeautifulGirl beautifulGirl; private LivelyGirl livelyGirl; private LooksMediocreGirl looksMediocreGirl; Boy(){ beautifulGirl = new BeautifulGirl(); livelyGirl =new LivelyGirl(); looksMediocreGirl = new LooksMediocreGirl(); } //我的朋友并不知道我有几个女友,因为女友是我私有的,但是给我朋友做饭的不是我,却是我的女友们。 //我的朋友到我家做客,他不了解我们家的情况,如果让我的朋友直接命令我的女友做家务,也许他会忙的忘记和我讲正事了(违背了单一职责) //我朋友 1————1 我(facade) 1————n girls //如果没有了我(facade),那么就变成了 我朋友 1————n girls //如果我朋友是待开发的新系统, girls是老系统(之前实现了的) //新系统需要用到老的系统提供服务,可是老系统很复杂, //开发新系统的人可能不了解老系统是怎么实现的, //那么facade 的出现就是提供给新系统 老系统的接口 public void dinner_for_friend(Friend friend){ // if...else...可以考虑状态模式重构 if( friend.getAges()<30){ this.methodA(); }else{ this.methodB(); } } public void methodA(){ beautifulGirl.do_it(); livelyGirl.do_something(); looksMediocreGirl.i_can_do(); } public void methodB(){ looksMediocreGirl.i_can_do(); livelyGirl.do_something(); beautifulGirl.do_it(); } }
public class BeautifulGirl { public void do_it(){ System.out.println("来杯咖啡"); } }
public class LivelyGirl { public void do_something(){ System.out.println("准备午餐"); } }
public class LooksMediocreGirl { public void i_can_do(){ System.out.println("准备点心"); } }
public class Friend { int ages; public int getAges() { return ages; } public void setAges(int ages) { this.ages = ages; } }
评论
18 楼
ababw1w1
2010-10-19
希望楼主多多指教,我刚刚才学设计模式
17 楼
Ashfrog
2010-09-03
例子很浅显易懂,也很有趣···
但我还是没有理解到这种模式的妙处···
是不是可以这样理解···
由Boy,将Girl的方法组合封装,Friend就可以通过Boy的methodA,B(封装了Girl的方法),来实现功能,而不必直接调用Girl的方法···
但我还是没有理解到这种模式的妙处···
是不是可以这样理解···
由Boy,将Girl的方法组合封装,Friend就可以通过Boy的methodA,B(封装了Girl的方法),来实现功能,而不必直接调用Girl的方法···
16 楼
jeff.key
2010-08-31
[quote="ysen"]
老鸟飞过
一直觉得facade有点多余,
主要是处理一些legacy系统接口过于复杂需要重新包装的问题。
如是你的系统从一开始就facade,那就有点奇怪了。
facade的一个可以参考的应该我觉得是tomcat的代码,
忘了是哪一段了,具体grep一下facade就知道了。
老鸟飞过
一直觉得facade有点多余,
主要是处理一些legacy系统接口过于复杂需要重新包装的问题。
如是你的系统从一开始就facade,那就有点奇怪了。
facade的一个可以参考的应该我觉得是tomcat的代码,
忘了是哪一段了,具体grep一下facade就知道了。
15 楼
wa20463165
2010-08-26
我感觉就像是工厂模式的扩展,以前咱们习惯一个工厂生产一种产品,现在这个工厂生产了多种不同用途的产品。
呵呵,也可能是我没看懂哈!
呵呵,也可能是我没看懂哈!
14 楼
ideal46
2010-08-18
如果是为了纯粹的将facade模式,很好,但是这样的设计不好,不用接口的设计模式都是狗屎。
13 楼
lovelh
2010-08-11
简单易懂,不错
12 楼
youanyyou
2010-05-27
学习了。。。简单易懂
11 楼
zhglhy
2010-05-25
很好,简单易懂!
10 楼
抢街饭
2010-05-18
女友多 真是一件好事
9 楼
ahutzh
2010-05-17
最近正在看设计模式有关的书籍,向楼主学习了!
8 楼
nenyalanye_1
2010-05-17
methodA 和methodB 应该改为 私有访问更好吧
7 楼
fucktianya
2010-05-14
讲的很一般,没看出哪儿好。
之所以这么说,是因为我没看懂,哈哈!
之所以这么说,是因为我没看懂,哈哈!
6 楼
nenyalanye_1
2010-05-12
讲的不错 很好理解
5 楼
chendw_hz
2009-12-21
我觉得楼主应该在门面类型对象用容器来容纳其他的子系统更好~!如果子对象如果特别多
估计提供给客户端的门面对象非常庞大 维护不方便,浅见。。
估计提供给客户端的门面对象非常庞大 维护不方便,浅见。。
4 楼
LK.Bing
2009-12-11
很好,简单易懂.
3 楼
java苹果+番茄
2009-12-10
<div class="quote_title">ysen 写道</div>
<div class="quote_div">
<p>老鸟飞过</p>
<p> </p>
<p> </p>
<pre name="code" class="java">package facade;
/**
*
* 在实际的开发过程中,往往需要将不同的两个层分离,
* 比如mvc 三层架构
* 业务层与表现层、持久层与业务层之间建立外观Facade,
* 这样为新的系统提供简单的接口。
*/
//facade类 组合了 三个子系统(每个girl是独立的系统)
public class Boy {
private BeautifulGirl beautifulGirl;
private LivelyGirl livelyGirl;
private LooksMediocreGirl looksMediocreGirl;
Boy(){
beautifulGirl = new BeautifulGirl();
livelyGirl =new LivelyGirl();
looksMediocreGirl = new LooksMediocreGirl();
}
//我的朋友并不知道我有几个女友,因为女友是我私有的,但是给我朋友做饭的不是我,却是我的女友们。
//我的朋友到我家做客,他不了解我们家的情况,如果让我的朋友直接命令我的女友做家务,也许他会忙的忘记和我讲正事了(违背了单一职责)
//我朋友 1————1 我(facade) 1————n girls
//如果没有了我(facade),那么就变成了 我朋友 1————n girls
//如果我朋友是待开发的新系统, girls是老系统(之前实现了的)
//新系统需要用到老的系统提供服务,可是老系统很复杂,
//开发新系统的人可能不了解老系统是怎么实现的,
//那么facade 的出现就是提供给新系统 老系统的接口
public void dinner_for_friend(Friend friend){
// if...else...可以考虑状态模式重构
if( friend.getAges()<30){
this.methodA();
}else{
this.methodB();
}
}
public void methodA(){
beautifulGirl.do_it();
livelyGirl.do_something();
looksMediocreGirl.i_can_do();
}
public void methodB(){
looksMediocreGirl.i_can_do();
livelyGirl.do_something();
beautifulGirl.do_it();
}
}</pre>
<p> </p>
<pre name="code" class="java">public class BeautifulGirl {
public void do_it(){
System.out.println("来杯咖啡");
}
}
</pre>
<p> </p>
<pre name="code" class="java">public class LivelyGirl {
public void do_something(){
System.out.println("准备午餐");
}
}
</pre>
<p> </p>
<pre name="code" class="java">public class LooksMediocreGirl {
public void i_can_do(){
System.out.println("准备点心");
}
}
</pre>
<p> </p>
<p> </p>
<pre name="code" class="java">public class Friend {
int ages;
public int getAges() {
return ages;
}
public void setAges(int ages) {
this.ages = ages;
}
}
</pre>
<p> </p>
</div>
<p> </p>
<div class="quote_div">
<p>老鸟飞过</p>
<p> </p>
<p> </p>
<pre name="code" class="java">package facade;
/**
*
* 在实际的开发过程中,往往需要将不同的两个层分离,
* 比如mvc 三层架构
* 业务层与表现层、持久层与业务层之间建立外观Facade,
* 这样为新的系统提供简单的接口。
*/
//facade类 组合了 三个子系统(每个girl是独立的系统)
public class Boy {
private BeautifulGirl beautifulGirl;
private LivelyGirl livelyGirl;
private LooksMediocreGirl looksMediocreGirl;
Boy(){
beautifulGirl = new BeautifulGirl();
livelyGirl =new LivelyGirl();
looksMediocreGirl = new LooksMediocreGirl();
}
//我的朋友并不知道我有几个女友,因为女友是我私有的,但是给我朋友做饭的不是我,却是我的女友们。
//我的朋友到我家做客,他不了解我们家的情况,如果让我的朋友直接命令我的女友做家务,也许他会忙的忘记和我讲正事了(违背了单一职责)
//我朋友 1————1 我(facade) 1————n girls
//如果没有了我(facade),那么就变成了 我朋友 1————n girls
//如果我朋友是待开发的新系统, girls是老系统(之前实现了的)
//新系统需要用到老的系统提供服务,可是老系统很复杂,
//开发新系统的人可能不了解老系统是怎么实现的,
//那么facade 的出现就是提供给新系统 老系统的接口
public void dinner_for_friend(Friend friend){
// if...else...可以考虑状态模式重构
if( friend.getAges()<30){
this.methodA();
}else{
this.methodB();
}
}
public void methodA(){
beautifulGirl.do_it();
livelyGirl.do_something();
looksMediocreGirl.i_can_do();
}
public void methodB(){
looksMediocreGirl.i_can_do();
livelyGirl.do_something();
beautifulGirl.do_it();
}
}</pre>
<p> </p>
<pre name="code" class="java">public class BeautifulGirl {
public void do_it(){
System.out.println("来杯咖啡");
}
}
</pre>
<p> </p>
<pre name="code" class="java">public class LivelyGirl {
public void do_something(){
System.out.println("准备午餐");
}
}
</pre>
<p> </p>
<pre name="code" class="java">public class LooksMediocreGirl {
public void i_can_do(){
System.out.println("准备点心");
}
}
</pre>
<p> </p>
<p> </p>
<pre name="code" class="java">public class Friend {
int ages;
public int getAges() {
return ages;
}
public void setAges(int ages) {
this.ages = ages;
}
}
</pre>
<p> </p>
</div>
<p> </p>
2 楼
ysen
2009-12-10
wujiazhao88 写道
楼主对设计模式的理解应用到这些有趣的例子上,真是不错
最近还是比较闲的,呵呵
1 楼
wujiazhao88
2009-12-10
楼主对设计模式的理解应用到这些有趣的例子上,真是不错
发表评论
-
email 发送接口
2012-02-29 17:48 1526企业邮件发送有自己的发送平台,其它系统包括业务系统常常将发送邮 ... -
dom4j中的单例策略
2010-04-14 13:53 1568单例模式的实现方法有很多,饿汉和饱汉 ,Double-chec ... -
OOD原则
2010-03-09 16:51 1339单一职责原则(SRP) 就一个类而言,应该仅有一个引起它 ... -
GRASP(基于职责设计对象)
2010-03-09 16:41 1444GRASP(General Responsibility A ... -
女友的对话(中介者模式也叫调停者)
2010-01-02 20:40 902需要中介者对象作为通信控制平台 所操控的抽象对象 ... -
请假 加薪(职责链模式)
2009-12-30 20:50 1250学习笔记 职责链模式的结构 和装饰模式的结构是一样的。 ... -
如何换数据库(未使用任何框架)
2009-12-18 04:25 929因为之前使用的mysql 现在想转为Oracle实现 ... -
和女友的不愉快(访问者模式)
2009-12-13 13:59 1024老鸟飞过哈 最近和女友很不和,特此用段模式写下自己的状 ... -
起床做饭(观察者模式)
2009-12-10 23:02 1072//通知者 public class Boy { //状 ... -
城市的生活成本(模板方法)
2009-12-09 16:50 872public abstract class Boy { ... -
女友多的好处2(工厂方法)
2009-12-08 01:01 1406(老鸟略过) 之前的一篇简单方法模式连接地址 http:/ ... -
带女友干活(代理模式)
2009-12-06 23:22 1305老鸟跳过请跳过, 最近无聊,贴一些自己过去学习设计模式 ... -
老公爱吃的菜(策略模式)
2009-12-06 00:09 965将策略的上下文的构造函数换用简单工厂模式的话就将业务对象封装起 ... -
陪她们依次去旅游(装饰模式)
2009-12-05 21:52 835//梦中情人 呵呵 public c ... -
女友多的好处 (简单工厂模式)
2009-12-05 21:47 1207java 的switch 语句的case 匹配为什么不能像de ... -
不同的年龄阶段喜欢不同的女孩 (状态模式)
2009-12-05 21:32 1153讨媳妇的男孩 public class Boy { ...
相关推荐
【地道英语:去朋友家做客如何打招呼】 在IT领域,虽然技术交流通常是主题,但社交礼仪同样重要,尤其是在跨文化沟通中。这篇内容聚焦于英语中的家庭访问礼仪,特别是如何用地道的英语向朋友家中的其他人打招呼。这...
幼儿园中班社会详案《欢迎来做客》润新教育.txt
2021高三作文“100年后青年邀请100年前青年做客”原题及优秀范文.pdf
【到小动物家做客】是一个适合小班幼儿参与的教育活动,旨在通过模拟到小动物家做客的情境,让孩子们在游戏中学习和实践生活技能,特别是关于饮食和餐桌礼仪的知识点。 首先,活动目标明确地关注了三个方面: 1. ...
标题中的“在叔叔家做客作文.doc”表明这是一篇以个人视角描绘去叔叔家做客体验的文章,属于文学创作的范畴,特别是作文或故事类的范文。描述中提到的同样内容暗示这是一个关于家庭访问的故事,发生在暑假期间,地点...
【语言游戏《到春姑娘家做客》教案】 这是一份针对幼儿的教育教案,旨在通过语言游戏的方式,帮助孩子们提升语言能力,培养良好的社交礼仪,并加深对春天的认知。游戏的核心是模仿小动物去春姑娘家做客的情景,通过...
小班科学 到小动物家做客.doc
中望做客央视力促CAD正版化.pdf
待客做客礼仪(小学礼仪教案).doc
【小鸡做客(语言)】活动是一个针对小班幼儿设计的语言教育活动,旨在通过游戏的方式激发幼儿的参与兴趣,提升他们的语言表达能力和对方位的认知。活动以“我能干”为主题,鼓励幼儿感知自我,体验自己的能力,并...
1. **团队协作** - 小鸟提出了一个创新的想法,即建造一座大房子以邀请大象做客。这个故事展示了团队合作的力量,每个小动物都有自己的角色,共同完成了目标。在IT行业中,团队协作同样至关重要,无论是开发项目还是...
小班语言到鸡婆婆家做客教案 小班语言到鸡婆婆家做客教案是优秀的小班语言教案知识,供老师家长们参考学习。该教案旨在提高幼儿的语言能力、礼貌用语和进餐的正确姿势。 一、目标: 1. 在游戏情景中愉快地练习...
房地产企业在进行客户研究(客研)的过程中,其研究工作主要分为三个层次:顶层、中层和底层。每个层次都对应着不同的研究方法和目标,它们共同构成了房企在产品研发、市场定位、投资决策等方面的重要基础。...
商务礼品与做客礼品的区别 管理资料.doc
小班语言优秀教案《做客》润新教育.txt
4. 情境教学:通过模拟去小兔家做客的场景,孩子们可以在游戏的过程中学习和实践社会交往的行为规范。 5. 互动参与:活动设计包括与小动物的互动,让孩子们在模仿和参与中学习,增强学习的趣味性和效果。 6. 社交...
《到鸡婆婆家做客》(小班).doc
做客央视绿书签行动 中望力促CAD正版化.pdf
幼儿园中班英语活动教案《做客》润新教育.txt
小班幼儿体育教案《小猫做客》润新教育.txt