上篇文章分享代理模式,这篇整理外观模式,外观模式可以降低类与类之间的耦合程度,减少维护工作量
1.外观模式是为了解决类与类之间的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个外观类中,降低了类与类之间的耦合度,该模式中没有涉及到接口 2.把类归纳在一个整体类里边,一起调用,达到整体实现的效果
public class CPU {
public void startup(){
System.out.println("启动cpu!");
}
public void shutdown(){
System.out.println("关闭cpu!");
}
}
public class Memory {
public void startup(){
System.out.println("启动内存!");
}
public void shutdown(){
System.out.println("关闭内存!");
}
}
public class Disk {
public void startup(){
System.out.println("启动硬盘!");
}
public void shutdown(){
System.out.println("关闭硬盘!");
}
}
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 startup(){
System.out.println("正在启动!");
cpu.startup();
memory.startup();
disk.startup();
System.out.println("启动成功!");
System.out.println("====================");
}
public void shutdown(){
System.out.println("正在关机!");
cpu.shutdown();
memory.shutdown();
disk.shutdown();
System.out.println("关机成功!");
}
}
public class ComputerTest {
public static void main(String[] args) {
Computer computer = new Computer();
computer.startup();
computer.shutdown();
}
}
正在启动! 启动cup! 启动内存! 启动硬盘! 启动成功! ==================== 正在关机! 关闭cup! 关闭内存! 关闭硬盘! 关机成功!
如果没有Computer类,那么,CPU、Memory、Disk他们之间将会相互持有实例,产生关系,这样会造成严重的依赖,修改一个类,可能会带来其他类的修改,这不是我们想要看到的,有了Computer类,他们之间的关系被放在了Computer类里,这样就起到了解耦的作用,这,就是外观模式!