外观模式

举例:

假如启动电脑分为内存和cpu启动。为了降低复杂性,启动cpu和内存单独实现。使用外观模式之后,在电脑实现类里,调用内存和cpu的启动方法,对用户而言,根本无需与内存cpu打交道,只知道一个电脑启动方法

代码实现:

package com.whereta.facade;

/**
 * Vincent 创建于 2016/4/25.
 */
public class Cpu {

    public void start(){
        System.out.println("cpu启动了");
    }

    public void stop(){
        System.out.println("cpu关闭了");
    }

}

package com.whereta.facade;

/**
 * Vincent 创建于 2016/4/25.
 * 内存
 */
public class Memory {
    public void start(){
        System.out.println("Memory启动了");
    }

    public void stop(){
        System.out.println("Memory关闭了");
    }

}

package com.whereta.facade;

/**
 * Vincent 创建于 2016/4/25.
 */
public class Computer {

    private Memory memory;
    private Cpu cpu;


    public Computer(Memory memory, Cpu cpu) {
        this.memory = memory;
        this.cpu = cpu;
    }

    public void start(){
        memory.start();
        cpu.start();
        System.out.println("Computer启动了");
    }

    public void stop(){
        memory.stop();
        cpu.stop();
        System.out.println("Computer关闭了");
    }
}

测试:

package com.whereta.facade;

/**
 * Vincent 创建于 2016/4/25.
 */
public class Main {
    public static void main(String[] args) {
        Memory memory = new Memory();
        Cpu cpu = new Cpu();
        Computer computer = new Computer(memory, cpu);
        computer.start();
        computer.stop();
    }
}

输出:

Memory启动了
cpu启动了
Computer启动了
Memory关闭了
cpu关闭了
Computer关闭了

个人博客:http://www.whereta.com

你可能感兴趣的:(外观模式)