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("准备点心");
}
}
分享到:
相关推荐
门面模式门面模式
什么是门面模式(Facade) 外部与一个子系统的通信必须通过一个统一的门面对象进行。这就是门面模式。 门面模式的结构 涉及两个角色: 门面角色:客户端可以调用这个角色的方法。此角色知道子系统的功能和责任。在...
门面模式门面模式门面模式
门面模式门面模式门面模式
设计模式C++学习之门面模式(Facade)
门面模式的Java实现版本和UML类设计图
设计模式之门面模式(Facade模式),介绍门面模式,实际例子分析,代码讲解等
用Java实现的门面模式,有源代码以及视频讲解。
C++设计模式课件14_Facade_门面模式.pdf
Android也架构之四:门面模式解析获取的html代码 文章详细地址: http://blog.csdn.net/michael_yy/article/details/7965168
设计模式之门面模式,最容易理解和上手的实例,值得学习
23种设计模式--门面模式
这是设计模式实训教程(第2版)相关是课程实验,主要有两个实验门面和代理
EJB的经典模式——门面模式EJB的经典模式——门面模式
NULL 博文链接:https://dada-fangfang.iteye.com/blog/1021146
1、门面模式(Facade) 用意:提供一个统一的接口去访问多个子系统的多个不同的接口,来控制访问的粒度。
门面模式入门,简单易懂
NULL 博文链接:https://lym6520.iteye.com/blog/707060
门面模式为子系统提供一个统一的高层接口,供外部客户使用。 门面模式提供了一个更高层次的接口,使得子系统更容易使用。
门面模式郭嘉模式定义:为子系统中的一组接口提供一个一致的接口,Facade 模式定义了一个高层接口,这个接口使得这一子系统更加容易使用案例:* @author