java 设计模式之外观模式的详解(结构模式)
2016-07-31 20:07
453 查看
外观模式是为了解决类与类之间的依赖关系的,像Spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放到一个Facade类中,降低了类与类之间的耦合度,该模式中没有涉及到接口,看下类图:(我们以一个计算机的启动过程为例)
我们先看下实现类:
public class Cpu {
public void startup(){
System.out.println("cpu startup");
}
public void shutdown(){
System.out.println("cpu shutdown");
}
}
public class User {
public static void main(String[] args) {
Computer computer=new Computer();
computer.startup();
computer.shutdown();
}
}
结果:
如果我们没有Computer类,那么,CPU,Memory,Disk他们之间将会互相持有实例,产生关系,这样会造成严重的依赖,修改一个类,可能会带来其他类的修改,这不是我们想要看到的,有了Computer类,他们之间的关系放在了Computer类里,这样就起到了解耦的作用,这,就是外观模式~
外观模式的好处:
在于对于客户端子系统屏蔽了内部组件,减少客户单处理对象的数目,使客户端调用变的简单;将客户端和子系统解耦,子系统内部紧耦合,达到了系统设计的高内聚低耦合的要求。
我们先看下实现类:
public class Cpu {
public void startup(){
System.out.println("cpu startup");
}
public void shutdown(){
System.out.println("cpu shutdown");
}
}
public class Memory { public void startup(){ System.out.println("memory startup"); } public void shutdown(){ System.out.println("memory shutdown"); } }
public class Disk { public void startup(){ System.out.println("disk startup"); } public void shutdown(){ System.out.println("disk shutdown"); } }
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("start the computer"); cpu.startup(); memory.startup(); disk.startup(); System.out.println("start computer finished"); } public void shutdown(){ System.out.println("begin to close computer"); cpu.shutdown(); memory.shutdown(); disk.shutdown(); System.out.println("computer close"); } }测试类:
public class User {
public static void main(String[] args) {
Computer computer=new Computer();
computer.startup();
computer.shutdown();
}
}
结果:
如果我们没有Computer类,那么,CPU,Memory,Disk他们之间将会互相持有实例,产生关系,这样会造成严重的依赖,修改一个类,可能会带来其他类的修改,这不是我们想要看到的,有了Computer类,他们之间的关系放在了Computer类里,这样就起到了解耦的作用,这,就是外观模式~
外观模式的好处:
在于对于客户端子系统屏蔽了内部组件,减少客户单处理对象的数目,使客户端调用变的简单;将客户端和子系统解耦,子系统内部紧耦合,达到了系统设计的高内聚低耦合的要求。
相关文章推荐
- Java设计模式(八) 外观模式详解
- Java 设计模式之享元模式的详解(结构模式)
- Java与设计模式(二十)结构型--外观模式
- Java开发中的23种设计模式详解----外观模式(Facade)
- Java 设计模式之组合模式的详解(结构模式)
- java23中设计模式——结构模式——Facade(外观 )
- java软件体系结构设计模式----外观
- Java设计模式(9)结构型:外观模式
- Java设计模式详解之门面模式(外观模式)
- Java 设计模式之代理模式的详解(结构模式)
- Java 设计模式之桥接模式的详解(结构模式)
- Java 设计模式之适配器模式的详解(结构模式)
- Java设计模式之门面设计模式(外观模式)与 log4j.properties配置详解
- Java开发中的23种设计模式详解(2)结构型
- Java 设计模式之装饰模式的详解(结构模式)
- Java 23种设计模式之外观模式详解
- 详解Java设计模式编程中的Flyweight享元模式的开发结构
- Java设计模式 结构模式-外观模式(Facade)
- 详解Java设计模式编程中命令模式的项目结构实现
- java 设计模式学习笔记七 facade外观模式