java外观模式

来源:互联网 发布:node邮箱登录验证 编辑:程序博客网 时间:2024/05/03 04:45

外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为门面模式,它是一种对象结构型模式。

UML类图


例:

/* Complex parts */class CPU {public void freeze() { ... }public void jump(long position) { ... }public void execute() { ... }}class Memory {public void load(long position, byte[] data) {...}}class HardDrive {public byte[] read(long lba, int size) {...}}/* Façade */class Computer {public void startComputer() {cpu.freeze();memory.load(BOOT_ADDRESS, hardDrive.read(BOOT_SECTOR, SECTOR_SIZE));cpu.jump(BOOT_ADDRESS);cpu.execute();}}/* Client */class You {public static void main(String[] args) {Computer facade = new Computer();facade.startComputer();}}


适用环境

在以下情况下可以使用外观模式:

  • 当要为一个复杂子系统提供一个简单接口时可以使用外观模式。该接口可以满足大多数用户的需求,而且用户也可以越过外观类直接访问子系统。
  • 客户程序与多个子系统之间存在很大的依赖性。引入外观类将子系统与客户以及其他子系统解耦,可以提高子系统的独立性和可移植性。
  • 在层次化结构中,可以使用外观模式定义系统中每一层的入口,层与层之间不直接产生联系,而通过外观类建立联系,降低层之间的耦合度。



0 0
原创粉丝点击