结构型--外观模式

博客介绍了外观模式的概念,它为子系统接口提供一致界面,使子系统更易使用,是将子系统调用代码封装到外观类方法中。还阐述了其优缺点,优点是减少客户与子系统耦合度,缺点是不符合开闭原则,子系统接口改变时外观类需修改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概念


 为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。(其实就是子系统中的类共同使用时太麻烦,客户不能每次为了完成某个功能,就写一遍调用代码,所以把代码抽象出来,封装到一个外观类的方法中)。

优点:

  1. 减少客户与子系统之间的耦合度。
  2. 客户在利用子系统实现某功能时,无需使用具体的子系统组件,只需要使用这个外观界面。

缺点:

  1. 不符合开闭原则,如果子系统中的一组接口发生改变,外观类也要在内部进行修改。
     

用例


package facade;

public class User {
	public static void main(String[] args) {
        Computer computer = new Computer();
        computer.startup();
        computer.shutdown();
    }
}
class CPU {
    public void startup() {
        System.out.println("cpu startup!");
    }
    public void shutdown() {
        System.out.println("cpu shutdown!");
    }
}
class Disk {
    public void startup() {
        System.out.println("disk startup!");
    }
    public void shutdown() {
        System.out.println("disk shutdown!");
    }
}
class Memory {
    public void startup() {
        System.out.println("memory startup!");
    }
    public void shutdown() {
        System.out.println("memory shutdown!");
    }
}
class Computer {  //外观界面
    private CPU cpu;
    private Memory memory;
    private Disk disk;
    public Computer() {
        cpu = new CPU();
        memory = new Memory();
        disk = new Disk();
    }
    public void startup() {  //要用的功能都准备好了,客户可以直接调用
        System.out.println("start the computer!");
        cpu.startup();
        memory.startup();
        disk.startup();
        System.out.println("start computer finished!");
    }
    public void shutdown() {
        System.out.println("begin to close the computer!");
        cpu.shutdown();
        memory.shutdown();
        disk.shutdown();
        System.out.println("computer closed!");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值