码迷,mamicode.com
首页 > 其他好文 > 详细

外观模式(Facde)【设计模式】

时间:2015-06-16 09:09:06      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:

定义:为子系统中的一组接口提供一个一致的界面,Fcade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
外观模式(Facade pattern),是软件工程中常用的一种软件设计模式,它为子系统中的一组接口提供一个统一的高层接口,使得子系统更容易使用。”
 
 
外观模式的实现:外观模式就是通过引入一个外观类(Facade),这个类里面定义客户端想要的简单的方法,然后,再这些方法的实现里面,有外观类再去分别调用子系统内部的多个模块来实现功能,从而让客户端变得简单。最后,客户端只需要和外观类交互就可以了。
与子系统的交互细节被封装到外观类中,这样客户端就和子系统完全解耦,客户端只和外观类通信,只关注外观类对外提供的接口。外观类对外提供一个高层的,容易使用的接口。
示意图:
技术分享
 
 
应用场景:
为一个复杂的子系统提供一个简单的接口,供客户端使用。客户端,不用去理解复杂子系统。只要有这种需求的,都可以使用外观模式来解决。
 
 
例子:

这是一个抽象的示例。一个客户“you”通过外观接口“computer”获取计算机内部复杂的系统信息

/* 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();
        }}
 

外观模式(Facde)【设计模式】

标签:

原文地址:http://www.cnblogs.com/ttylinux/p/4579842.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!