- 浏览: 123495 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
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 1564企业邮件发送有自己的发送平台,其它系统包括业务系统常常将发送邮 ... -
dom4j中的单例策略
2010-04-14 13:53 1600单例模式的实现方法有很多,饿汉和饱汉 ,Double-chec ... -
OOD原则
2010-03-09 16:51 1355单一职责原则(SRP) 就一个类而言,应该仅有一个引起它 ... -
GRASP(基于职责设计对象)
2010-03-09 16:41 1453GRASP(General Responsibility A ... -
女友的对话(中介者模式也叫调停者)
2010-01-02 20:40 913需要中介者对象作为通信控制平台 所操控的抽象对象 ... -
请假 加薪(职责链模式)
2009-12-30 20:50 1261学习笔记 职责链模式的结构 和装饰模式的结构是一样的。 ... -
如何换数据库(未使用任何框架)
2009-12-18 04:25 967因为之前使用的mysql 现在想转为Oracle实现 ... -
和女友的不愉快(访问者模式)
2009-12-13 13:59 1036老鸟飞过哈 最近和女友很不和,特此用段模式写下自己的状 ... -
起床做饭(观察者模式)
2009-12-10 23:02 1089//通知者 public class Boy { //状 ... -
城市的生活成本(模板方法)
2009-12-09 16:50 891public abstract class Boy { ... -
女友多的好处2(工厂方法)
2009-12-08 01:01 1416(老鸟略过) 之前的一篇简单方法模式连接地址 http:/ ... -
带女友干活(代理模式)
2009-12-06 23:22 1319老鸟跳过请跳过, 最近无聊,贴一些自己过去学习设计模式 ... -
老公爱吃的菜(策略模式)
2009-12-06 00:09 970将策略的上下文的构造函数换用简单工厂模式的话就将业务对象封装起 ... -
陪她们依次去旅游(装饰模式)
2009-12-05 21:52 854//梦中情人 呵呵 public c ... -
女友多的好处 (简单工厂模式)
2009-12-05 21:47 1248java 的switch 语句的case 匹配为什么不能像de ... -
不同的年龄阶段喜欢不同的女孩 (状态模式)
2009-12-05 21:32 1168讨媳妇的男孩 public class Boy { ...
相关推荐
【地道英语:去朋友家做客如何打招呼】 在IT领域,虽然技术交流通常是主题,但社交礼仪同样重要,尤其是在跨文化沟通中。这篇内容聚焦于英语中的家庭访问礼仪,特别是如何用地道的英语向朋友家中的其他人打招呼。这...
幼儿园中班社会详案《欢迎来做客》润新教育.txt
2021高三作文“100年后青年邀请100年前青年做客”原题及优秀范文.pdf
如果您需要给非做做客的朋友发送短消息,您能够在每条短信上立刻节省20% ~ 50%的短信费用(具体取决于您的运营商和套餐),具体资费将在稍后出台. 想要更快捷和彻底免费的短信? 那就快要请你的朋友们都来加入做做客...
标题中的“在叔叔家做客作文.doc”表明这是一篇以个人视角描绘去叔叔家做客体验的文章,属于文学创作的范畴,特别是作文或故事类的范文。描述中提到的同样内容暗示这是一个关于家庭访问的故事,发生在暑假期间,地点...
【语言游戏《到春姑娘家做客》教案】 这是一份针对幼儿的教育教案,旨在通过语言游戏的方式,帮助孩子们提升语言能力,培养良好的社交礼仪,并加深对春天的认知。游戏的核心是模仿小动物去春姑娘家做客的情景,通过...
小班科学 到小动物家做客.doc
中望做客央视力促CAD正版化.pdf
在实施过程中,教师的角色不是简单的指挥者或者裁判,而是孩子们活动中的引导者、合作者和鼓励者。教师需要观察每个孩子的表现,了解他们在活动中的需求和困难,然后给予个性化的指导和帮助。这样的方式不仅能够满足...
待客做客礼仪(小学礼仪教案).doc
而《小兔做客》这一美术综合活动便是针对幼儿年龄特点和认知发展水平而精心设计的,通过富有创意的情境化教学,将美术、语言、音乐、数学和体育等多个学科领域知识巧妙融合,旨在激发幼儿的学习兴趣,促进他们在游戏...
1. **团队协作** - 小鸟提出了一个创新的想法,即建造一座大房子以邀请大象做客。这个故事展示了团队合作的力量,每个小动物都有自己的角色,共同完成了目标。在IT行业中,团队协作同样至关重要,无论是开发项目还是...
【到小动物家做客】就是这样一个富有创意和教育意义的活动设计,它通过模拟到小动物家做客的情境,让孩子们在轻松愉快的氛围中学习饮食知识与餐桌礼仪,同时促进了幼儿对食物多样性的认知,培养了正确的进餐习惯,...
小班语言到鸡婆婆家做客教案 小班语言到鸡婆婆家做客教案是优秀的小班语言教案知识,供老师家长们参考学习。该教案旨在提高幼儿的语言能力、礼貌用语和进餐的正确姿势。 一、目标: 1. 在游戏情景中愉快地练习...
房地产企业在进行客户研究(客研)的过程中,其研究工作主要分为三个层次:顶层、中层和底层。每个层次都对应着不同的研究方法和目标,它们共同构成了房企在产品研发、市场定位、投资决策等方面的重要基础。...
商务礼品与做客礼品的区别 管理资料.doc
小班语言优秀教案《做客》润新教育.txt
本文档“到鸡婆婆家做客”就是一个典型的设计案例,通过组织一次模拟活动,让幼儿们在游戏中学习文明进餐的礼仪和规则,从而达到培养幼儿文明进餐习惯和技能的教育目的。 在“到鸡婆婆家做客”这个活动中,将文明...
这其中,“小鸡做客(语言)”活动以其生动有趣的方式,让小班幼儿在参与游戏的过程中,既提升了语言表达能力,又增强了对方位概念的理解,同时学会了社交规则。本文将从活动的设计理念、目标、准备、过程以及延伸...
《到鸡婆婆家做客》(小班).doc