java设计模式之门面模式

java设计模式23种,因工作需要,今天学习了一下门面模式。

看了许多博客,资料。
我个人总结的门面模式就是:给你我想给你看的,我还不是亲自给你看,我比较高大上,我有一个秘书,我想给你看的,你可以直接找我的秘书去获取。

说的可能比较接地气,就像小年轻去酒店开房,你要订房,那房卡,订早餐,这些你要是自己直接去去找到酒店的终端去自己办理,就会显得特别繁琐,还会影响美好的心情。那么,酒店就给你弄了个前台,前台就是酒店给客户一个门面。你可以直接,向前台要你想要办的一切。至于酒店后台怎么操作的,那就对客户透明了。客户也没有必要去关心酒店后台处理的所有细节。
酒店也就是高大上的,前台就是那酒店的门面。这就是我理解的门面模式。

直接上一个比较简单的实例:

首先造一个酒店的后台细节:
具体操作类一


public class ModuleA {
public void test(){
System.out.println("调用模块A");
}


public void haha(){
System.out.println("对客户端透明方法,子系统内部互调使用");
}
public void xixi(){
System.out.println("对客户端透明方法,子系统内部互调使用");
}
}

具体操作类二
public class ModuleB {
public void test() {
System.out.println("调用模块B");
}

public void haha() {
System.out.println("对客户端透明方法,子系统内部互调使用");
}

public void xixi() {
System.out.println("对客户端透明方法,子系统内部互调使用");
}
}

具体操作类三
public class ModuleC {
public void test() {
System.out.println("调用模块C");
}

public void haha() {
System.out.println("对客户端透明方法,子系统内部互调使用");
}

public void xixi() {
System.out.println("对客户端透明方法,子系统内部互调使用");
}
}

再来一个前台MM,门面角色
public class Facde {
private static Facde facde = null;
private ModuleA a = new ModuleA();
private ModuleB b = new ModuleB();
private ModuleC c = new ModuleC();

private Facde() {
}

//单例模式,懒汉式 比较好的解决安全问题
public static Facde getInstance() {

if (facde == null) {
synchronized (Facde.class) {
if (facde == null) {
facde = new Facde();
}
}
}
return facde;
}

public void testA() {
a.test();
}

public void testB() {
b.test();
}

public void testC() {
c.test();
}

}
客户端
public static void main(String[] args) {
Facde facde = Facde.getInstance();
facde.testA();
facde.testB();
facde.testC();
}



这就是我自己理解的门面模式,共勉之。
好处比较多,可以自己在网上找点资料看看,也就是那么几句话。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值