欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

15.设计模式之外观模式

程序员文章站 2022-03-02 20:25:14
...

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

 

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

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

 

例子:

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


15.设计模式之外观模式
            
    
    博客分类: 设计模式 设计模式外观模式 

代码:

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

 


 

  • 15.设计模式之外观模式
            
    
    博客分类: 设计模式 设计模式外观模式 
  • 大小: 32.4 KB