15.设计模式之外观模式

定义:提供了一个统一接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用

 

最少知识原则:只和你的密友谈话。

 解释:不要让太多的类耦合在一起,免得修改系统中一部分,会影响到其它部分。如果许多类之间相互依赖,那么这个系统就会变得易碎。

 

例子:

            用户在键盘上点击开机键,然后加载CPU,内存,硬盘驱动等信息,但是,客户只点了开机键,其它的执行内容对于客户而言是透明的。流程图如下:


代码:

1. CPU类

/**
 * 
 * @Description: 
 *  CPU类
 * @author king
 * @version 1.0
 */
public class Cpu {
    public void execute(){
	System.out.println("CPU正在启动.....");
    }
}

 2. 内存类

package com.myplay.facade;

/**
 * 
 * @Description: 内存类
 * @author king
 * @version 1.0
 */
public class Memeory {

    public void execute() {

	System.out.println("内存正在启动.....");
    }

}

 3. 硬盘驱动类

/**
 * 
 * @Description:
 * 硬盘驱动类
 * @author king
 * @version 1.0
 */
public class HardDriver {
    //执行的方法
    public void execute() {
	System.out.println("硬盘驱动正在加载.....");
    }
}

 4. 键盘类

/**
 * 
 * @Description: 
 *  键盘类
 * @author king
 * @version 1.0
 */
public class KeyBorad {
    public void clickButton(String command){
	if("start".equals(command)){
	    new Cpu().execute();
	    new Memeory().execute();
	    new HardDriver().execute();
	}
    }
}

 5.客户类

/**
 * 
 * @Description: 
 *  客户类
 * @author king
 * @version 1.0
 */
public class Client {
    private KeyBorad keyBorad = new KeyBorad();
   
    public void start(){
	keyBorad.clickButton("start");
    }

}

 6. 运行类:

/**
 * 
 * @Description: 
 *  运行类
 * @author king
 * @version 1.0
 */
public class Run {
    public static void main(String[] args) {
	Client client = new Client();
	client.start();
    }
}

 7.运行结果:

CPU正在启动.....

内存正在启动.....

硬盘驱动正在加载.....

 

以上是我对外观模式的理解。主要就是类的封装。

 

另,推广一下上班菜鸟技术群:207974203

 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值