- 浏览: 752629 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (241)
- 个人思考 (1)
- 数据库 (5)
- java基础 (32)
- 软件工程 (2)
- zk开源框架 (15)
- 设计模式 (25)
- javascript (12)
- css (9)
- UML (2)
- CMMI软件需求 (3)
- CMMI软件设计 (2)
- CMMI软件实现 (1)
- CMMI软件测试 (1)
- 正则表达式 (4)
- 系统日志配置 (4)
- 应用服务器 (1)
- spring (7)
- XML (6)
- java web (10)
- Ajax (3)
- RichFaces (14)
- 问题 (1)
- 评论文章 (2)
- fushioncharts (2)
- MAVN (4)
- jquery (26)
- Ext js学习 (2)
- 学习心得 (2)
- CSS兼容问题 (3)
- XSL-FOP (1)
- Quartz (0)
- OSGI (1)
- spring--security (6)
- apache tools (1)
- eclispe 小技巧 (2)
- Ant (1)
- 杂记 (1)
- spring3系列 (5)
- java cache (4)
- EffectiveJava (2)
- 代码重构 (0)
最新评论
-
psz6696:
可以说是超级简单的Demo了,可惜没有演示设值注入和构造注入两 ...
模拟spring中的ClassPathXmlApplicationContext类的实现 -
ziyourJava:
[flash=200,200][img][url][list] ...
spring security进级篇 V 自定义标签控制显示 -
ztw1122:
...
zk组件开发指南(目录) -
zjysuv:
容我说一句 在座的各位都是垃圾 spring 3.2以后的@C ...
三. spring mvc 异常统一处理 -
chengwu1201:
二 基于Spring的异常体系处理
1、外观模式
为子系统的一组接口提供一个一致的界面,此模式为客户端或子系统提供一个高层接口,这个接口使得客户端或子系统更加方便使用。简单的说,外观模式里面的实现可能是比较复杂的,在里面的实现中可能会涉及调用多个接口或调用顺序。但向子系统或客户端提供接口却比较简单,客户端或子系统只需关注接口,而并不需要关心里面复杂的实现和调用顺序。
2、图
3、使用范围
(1)业务层和表面层的层与层之间建立外观模式,可提供一个简单的接口,减少他们之间的依赖。
(2)维护一溜的大型系统时,可能系统已经难以维护或扩展,减少它们之间的依赖,可为新系统开发提供一个外观类,让新系统与外观类对象交互,外观类与遗留代码进行复杂的交互工作。
4、举例实现
(1)定义接口与实现
package com.cvicse.facade; public interface LetterProcess { // 首先要写信的内容 public void writeContext(String context); // 其次写信封 public void fillEnvelope(String address); // 把信放到信封里 public void letterInotoEnvelope(); // 然后邮递 public void sendLetter(); }
package com.cvicse.facade; public class LetterProcessImpl implements LetterProcess { // 写信 public void writeContext(String context) { System.out.println("填写信的内容...." + context); } // 在信封上填写必要的信息 public void fillEnvelope(String address) { System.out.println("填写收件人地址及姓名...." + address); } // 把信放到信封中,并封好 public void letterInotoEnvelope() { System.out.println("把信放到信封中...."); } // 塞到邮箱中,邮递 public void sendLetter() { System.out.println("邮递信件..."); } }
2、定义门面接口
package com.cvicse.facade; public class ModenPostOffice { private LetterProcess letterProcess = new LetterProcessImpl(); // 写信,封装,投递,一体化了 public void sendLetter(String context, String address) { // TODO Auto-generated method stub // 帮你写信 letterProcess.writeContext(context); // 写好信封 letterProcess.fillEnvelope(address); // 把信放到信封中 letterProcess.letterInotoEnvelope(); // 邮递信件 letterProcess.sendLetter(); } }
3、子系统或客户端调用
package com.cvicse.facade; public class Client { public static void main(String[] args) { // 现代化的邮局,有这项服务,邮局名称叫Hell Road ModenPostOffice hellRoadPostOffice = new ModenPostOffice(); // 你只要把信的内容和收信人地址给他,他会帮你完成一系列的工作; String address = "Happy Road No. 666,God Province,Heaven"; // 定义一个地址 String context = "Hello,It's me,do you know who I am? I'm your old lover.I'd like to...."; hellRoadPostOffice.sendLetter(context, address); } }
4、总结层与层之间的调用,门面模式常常和单利模式混合使用。这种模式在程序的开发中非常常见。
发表评论
-
面向对象设计原则-------总结
2015-07-14 10:55 0单一职能原则 ----- 设计类时,尽量功能单一,粒度合 ... -
MVC设计模式理解
2009-11-16 22:11 2043常常说MVC设计模式,今天抽空整理下,感觉模式这东 ... -
面向对象设计的原则---------迪米特原则
2009-10-15 21:15 3133迪米特原则(Law of Demeter) 1、迪米特原则的 ... -
面向对象设计的原则------接口隔离原则
2009-10-12 15:50 2760接口隔离原则(Interface ... -
面向对象设计的原则------依赖倒置原则
2009-10-11 18:27 3590依赖倒置原则(Dependence Inversion Pri ... -
面向对象设计的原则------里氏代换原则
2009-10-11 14:21 2604里氏代换原则(Liskov Sub ... -
面向对象设计的原则------开闭原则
2009-10-10 23:09 2438开闭原则(Open-Closed Prin ... -
面向对象设计的原则------单一职责原则
2009-10-09 20:36 3242学习设计模式,自然会涉及面向对象的设计原则,面向对 ... -
观察者模式
2009-08-04 22:14 1147gaojie -
组合模式-------树形模式
2009-08-03 20:42 22161、组合模式定义 ... -
命令模式
2009-08-02 14:06 18091、Commad模式是一种对象行为模式,它可以对发送者(se ... -
适配器和外观模式的区别
2009-08-01 18:23 1360ok -
适配器模式
2009-08-01 14:43 1158适配器模式通俗的说是将两个联系不密切的类或类与接口通过另一个类 ... -
简单工厂模式、代理模式、策略模式如此相似
2009-07-21 22:34 4068最近,一直在看设计模式,感觉简单工厂模式、代理模式、策略模式、 ... -
策略模式
2009-07-19 23:01 1322今天学习策略模式。策略模式是这个样子的。定义一个接 ... -
jdbcTemplate分页封装
2009-07-16 09:17 41081.JdbcTemplateExtend.java publi ... -
单例模式完全剖析
2009-07-07 21:01 1306概要 单例模式是最简单的设计模式之一,但是对于Jav ... -
DAO设计模式
2009-07-04 11:40 2201虽然DAO模式已经有了好多的成熟的框架,但它仍然是 ... -
工厂模式与DAO模式
2009-07-02 21:17 4382工厂模式是设计模式中较简单的模式,但在项目的开发过 ... -
动态代理模式
2009-06-30 22:25 14812.动态代理类 Java动态代理类位于Ja ...
相关推荐
java门面模式外观模式最大的缺点在于违背了“开闭原则”,当增加新的子系统或者移除子系统时需要修改外观类,可以通过引入抽象外观类在一定程度上解决该问题,客户端针对抽象外观类进行编程。对于新的业务需求,不...
外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个...外观模式又称为门面模式,它是一种对象结构型模式。
java设计模式门面模式java设计模式门面模式
c++设计模式-结构型模式-外观模式;qt工程;c++简单源码; 外观(Facade)模式又叫作门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,...
为子系统中的一组接口提供一个一致的界面, Facade 模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。本文给大家介绍Java设计模式详解之门面模式(外观模式),感兴趣的朋友参考下吧
外观模式(门面模式),是一种相对简单而又无处不在的模式。外观模式提供一个高层接口,这个接口使得客户端或子系统更加方便调用。 用一段再简单不过的代码来表示: 代码如下: var getName = function(){ return ”...
主要介绍了C#设计模式编程中外观模式Facade Pattern的应用,外观模式中分为门面(Facade)和子系统(subsystem)两个角色来进行实现,需要的朋友可以参考下
C++设计模式原理与实战视频课 1-1 课程介绍 1-2 导论UML和设计模式导论 2-1 简单工厂方法的定义场景与实现-针对接口编程的设计思想剖析 ...3-2 门面(外观)模式Facade的定义、场景与实用工程技术:LOD
[GOF《设计模式》]门面模式没有一个一般化的类图描述,下面是一个示意性的对象图:外观模式为子系统中的接口定义了一个统一的更高层次的界面,以便于使用。当消费者按照目录采购时,则体现了一个外观模式。消费者...
外观模式又称为门面模式,它是一种对象结构型模式。 模式结构: 外观模式的就是让client客户端以一种简单的方式来调用比较复杂的系统,来完成一件事情。 Subsystem: 复制代码 代码如下: class car { public ...
Factory模式,Prototype模式,Builder 模式,Singleton模式,Facade模式,Proxy模式,Adapter模式,Composite模式,Decorator模式....
Ajax中使用Facade外观(门面)模式的Eclipse版本的Demo.
外观模式(门面模式),是一种相对简单而又无处不在的模式。外观模式提供一个高层接口,这个接口使得客户端或子系统更加方便调用。 外观模式并不是适配器模式,适配器模式是一种包装器,用来对接口进行适配以便在不...
结构型模式:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式 行为型模式:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式...
外观模式(门面) 适配器模式(Adapter) 代理模式(Proxy) 组合模式(复合) 享元模式(Flyweight) 装饰模式(装饰器) 桥模式(Bridge) 行为型模式 如何将多个类或对象相互协作,完成特定对象无法完成的任务,...
设计模式之 Facade(门面?) 可扩展的使用 JDBC针对不同的数据库编程,Facade提供了一种灵活的实现. 设计模式之 Composite(组合) 就是将类用树形结构组合成一个单位.你向别人介绍你是某单位,你是单位中的一个元素...
本应用实例中包含大部分的cocoa设计模式(已添加详细注释): 创建型:单例(单态)和抽象工厂 ...结构型:MVC、装饰器、适配器、外观(门面)、组合模式 行为型:观察者、备忘录、责任链、命令模式
facade模式,即门面模式,也称外观模式,这个模式的核心思想是使用facade对象为外部客户端提供一个统一的访问一组子系统的接口,即客户端不会直接与各个子系统交互,而是通过facade对象与各个子系统进行通信并使用子...
facade这个词,原意指的是一个建筑物的表面、外观,在建筑学中被翻译为“立面”这个术语,国内对facade这个词的关注,可能更多要依赖于laravel的流行,似乎都一致把laravel里的facade翻译作“门面”。说实在的,当第...