大数据

 

 

什么叫外观模式
什么是外观模式? 外观模式也叫门面模式,它为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

界面:主要指从一个组件外部来看这个组件,能够看到什么,这就是这个组件的界面,即外观(这里不是我们想的那么简单的GUI)。

接口:主要是指外部和内部交互的一个通道,通常是指一些方法,可以是类方法,也可以使interface的方法。

外观模式的场景
比如,我们装修好了一座房子后,需要购买桌椅板凳,家用电器,是不是跑了家具市场,还要跑家电市场,如果有这么一家装修公司,你只需要告诉他你需要什么类型的家具,什么品牌的电器。他就会帮你采购回来,你就不需要关心在哪买的,这样是不是省心很多呢,看下图


如果没有通过装修公司这个门面,那就所以功能都得自己跑。。。

代码实现
实现家具市场购买家具的接口

/**
* @Author: dengcs
* @Date: 2020/6/28 15:43
* Comment:购买家具接口
*/
public interface BuyA {
public void buyJj();
}
1
2
3
4
5
6
7
8
购买家具实现类

/**
* @Author: dengcs
* @Date: 2020/6/28 15:50
* Comment:购买家具实现接口
*/
public class BuyAimpl implements BuyA{
@Override
public void buyJj() {
System.out.println("购买家具---桌椅板凳");
}
}
1
2
3
4
5
6
7
8
9
10
11
实现家电市场购买家电的接口

/**


* Comment:购买家电接口
*/
public interface BuyB {
public void buyJd();
}

购买家电实现类

/**

* Comment:购买家电实现接口
*/
public class BuyBimpl implements BuyB{
@Override
public void buyJd() {
System.out.println("购买家电---冰箱电视");
}
}


然后编写一个外观模式的接口

/**
*
* Comment:外观接口
*/
public interface Facade {
public void buy();
}

8
最后实现外观接口buy

/**
*
* Comment:外观接口实现
*/
public class FacadeImpl implements Facade {
@Override
public void buy() {
BuyA buyA = new BuyAimpl();
//购买家具
buyA.buyJj();
BuyB buyB = new BuyBimpl();
//购买家电
buyB.buyJd();
}
}

测试
编写一个测类

/**

* Comment:外观模式测试
*/
public class Facadetest {
public static void main(String[] args) {
Facade facade = new FacadeImpl();
facade.buy();
}
}

测试结果为

 

posted @ 2021-10-05 10:51  大风吹爱护  阅读(35)  评论(0编辑  收藏  举报