外观形式(Facade)
外观模式(Facade)
外观模式的主要作用是降低系统之间的耦合性,包含3种角色:目标类、外观类、客户端类。
外观模式只可以将一些复杂的类包装成一个简单的封闭接口,外观模式对客户屏蔽了复杂的子系统组件,并为一般用户提供了一个比较简单的程序设计接口。
package facade; /** * @author lenovo * @version 1.0 * @created 17-三月-2011 21:58:07 */ public class Memory { public Memory(){ } public void finalize() throws Throwable { } public void shutdown(){ System.out.println("内存关闭"); } public void startup(){ System.out.println("内存启动"); } }
package facade; /** * @author lenovo * @version 1.0 * @created 17-三月-2011 21:58:20 */ public class Disk { public Disk(){ } public void finalize() throws Throwable { } public void shutdown(){ System.out.println("硬盘关闭"); } public void startup(){ System.out.println("硬盘启动"); } }
package facade; /** * @author lenovo * @version 1.0 * @created 17-三月-2011 21:56:37 */ public class Cpu { public Cpu(){ } public void finalize() throws Throwable { } public void shutdown(){ System.out.println("Cpu关闭"); } public void startup(){ System.out.println("Cpu启动"); } }
package facade; /** * @author lenovo * @version 1.0 * @created 17-三月-2011 21:58:37 */ public class Computer { private Cpu cpu; private Disk disk; private Memory memory; public Computer(){ cpu = new Cpu(); disk = new Disk(); memory = new Memory(); } public void finalize() throws Throwable { } public void shutdown(){ System.out.println("计算机关闭"); cpu.shutdown(); memory.shutdown(); disk.shutdown(); } public void startup(){ System.out.println("计算机启动开始"); cpu.startup(); memory.startup(); disk.startup(); } }
package facade; /** * @author lenovo * @version 1.0 * @created 17-三月-2011 21:58:45 */ public class User { public User(){ } public void finalize() throws Throwable { } public static void main(String args[]){ Computer computer = new Computer(); computer.startup(); computer.shutdown(); } }
例子中的Cpu类、Disk类、Memory类为目标类,Computer类为外观类,User类为客户类。