java设计模式之外观模式(门面模式)

java设计模式参考文章:
Java设计模式实战23种设计模式介绍以及在Java中的实现Java设计模式 Java经典设计模式之五大创建型模式


## 定义 ##

为系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
外观模式是一种很简单的模式,我们有意无意都在使用这种模式。

## 代码示例 ##

  • 每个Computer都有CPU、Memory、Disk。在Computer开启和关闭的时候,相应的部件也会开启和关闭。
public class CPU {
    public void start()
    {
        System.out.println("cpu is start...");
    }

    public void shutDown()
    {
        System.out.println("CPU is shutDown...");
    }
}

public class Disk {
    public void start()
    {
        System.out.println("Disk is start...");
    }

    public void shutDown()
    {
        System.out.println("Disk is shutDown...");
    }
}

public class Memory {
    public void start()
    {
        System.out.println("Memory is start...");
    }

    public void shutDown()
    {
        System.out.println("Memory is shutDown...");
    }
}

/**
 * @author bwx
 * @date 2017/11/28
 * facade门面类
 */
public class Computer {
    private CPU cpu;
    private Memory memory;
    private Disk disk;
    public Computer()
    {
        cpu = new CPU();
        memory = new Memory();
        disk = new Disk();
    }
    public void start()
    {
        System.out.println("Computer start begin");
        cpu.start();
        disk.start();
        memory.start();
        System.out.println("Computer start end");
    }

    public void shutDown()
    {
        System.out.println("Computer shutDown begin");
        cpu.shutDown();
        disk.shutDown();
        memory.shutDown();
        System.out.println("Computer shutDown end...");
    }
}

public class Main {
    public static void main(String[] args) {
        Computer computer = new Computer();
        computer.start();
        System.out.println("=================");
        computer.shutDown();
    }
}

## 优点 ##

 我们提供给用户的某个功能,可能是包含很多个步骤的,
 但我们可以把这些步骤封装到一个统一的接口中,让用户感觉仅仅就是一个单一的操作,
 使用起来也就更加简单。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值