- 浏览: 762345 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (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 2078常常说MVC设计模式,今天抽空整理下,感觉模式这东 ... -
面向对象设计的原则---------迪米特原则
2009-10-15 21:15 3168迪米特原则(Law of Demeter) 1、迪米特原则的 ... -
面向对象设计的原则------接口隔离原则
2009-10-12 15:50 2802接口隔离原则(Interface ... -
面向对象设计的原则------依赖倒置原则
2009-10-11 18:27 3635依赖倒置原则(Dependence Inversion Pri ... -
面向对象设计的原则------里氏代换原则
2009-10-11 14:21 2637里氏代换原则(Liskov Sub ... -
面向对象设计的原则------开闭原则
2009-10-10 23:09 2469开闭原则(Open-Closed Prin ... -
面向对象设计的原则------单一职责原则
2009-10-09 20:36 3271学习设计模式,自然会涉及面向对象的设计原则,面向对 ... -
观察者模式
2009-08-04 22:14 1177gaojie -
组合模式-------树形模式
2009-08-03 20:42 22581、组合模式定义 ... -
命令模式
2009-08-02 14:06 18411、Commad模式是一种对象行为模式,它可以对发送者(se ... -
适配器和外观模式的区别
2009-08-01 18:23 1402ok -
适配器模式
2009-08-01 14:43 1188适配器模式通俗的说是将两个联系不密切的类或类与接口通过另一个类 ... -
简单工厂模式、代理模式、策略模式如此相似
2009-07-21 22:34 4113最近,一直在看设计模式,感觉简单工厂模式、代理模式、策略模式、 ... -
策略模式
2009-07-19 23:01 1359今天学习策略模式。策略模式是这个样子的。定义一个接 ... -
jdbcTemplate分页封装
2009-07-16 09:17 41401.JdbcTemplateExtend.java publi ... -
单例模式完全剖析
2009-07-07 21:01 1340概要 单例模式是最简单的设计模式之一,但是对于Jav ... -
DAO设计模式
2009-07-04 11:40 2233虽然DAO模式已经有了好多的成熟的框架,但它仍然是 ... -
工厂模式与DAO模式
2009-07-02 21:17 4417工厂模式是设计模式中较简单的模式,但在项目的开发过 ... -
动态代理模式
2009-06-30 22:25 15132.动态代理类 Java动态代理类位于Ja ...
相关推荐
总的来说,外观模式是一种非常实用的设计模式,它在复杂系统中起到了“门面”的作用,使得外部调用更加简单、清晰,同时也提高了系统的可维护性和可扩展性。在Java开发中,我们应该灵活运用外观模式,尤其是在面对...
门面模式的引入就是为了处理这种问题,它为子系统提供了一个简单的外观,客户端通过这个外观对象来与子系统交互,而无需关心子系统内部的具体实现。 门面模式的核心组成部分包括: 1. **外观(Facade)**:这是...
**外观模式(Facade Pattern)**是软件工程中一种常用的设计模式,属于结构型模式,它为复杂的系统或者子系统提供一个简洁的接口,使得客户端无需了解系统内部的复杂性,只需要通过这个统一的接口进行交互。外观模式...
门面(Facade)模式是一种设计模式,遵循迪米特法则,旨在简化子系统的使用,减少客户端与子系统之间的复杂依赖关系。迪米特法则主张一个对象应该尽量减少与其他对象的交互,只与直接的朋友交流,以此提高系统的内聚...
java门面模式外观模式最大的缺点在于违背了“开闭原则”,当增加新的子系统或者移除子系统时需要修改外观类,可以通过引入抽象外观类在一定程度上解决该问题,客户端针对抽象外观类进行编程。对于新的业务需求,不...
外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个...外观模式又称为门面模式,它是一种对象结构型模式。
门面模式(Facade Pattern)是一种结构型设计模式,它的主要目的是为复杂的子系统提供一个统一且简单的接口,使得客户端能够更方便地与这些子系统交互,而无需了解子系统的内部实现细节。这种模式降低了客户端与子...
外观模式(Facade Pattern),又称门面模式,属于对象结构型模式的一种。其主要作用是为子系统中的一组接口提供一个统一的高层接口,使得子系统更容易被使用。在实际应用中,当一个系统变得越来越复杂,对外暴露的...
门面模式(Facade Pattern),又称为外观模式,是软件设计中的一种结构型模式。它的主要目的是为了解耦客户端与复杂系统之间的关系,通过提供一个简单的统一接口,使得客户端可以方便地使用系统,而无需关心系统内部...
在软件开发过程中,客户端程序经常会与复杂系统的内部子系统进行耦合,从而导致客户端程序随着子系统的变化而变化,然而为了将复杂系统的内部子系统与客户端之间的依赖解耦,从而就有了外观模式 1. 外观模式定义: ...
c++设计模式-结构型模式-外观模式;qt工程;c++简单源码; 外观(Facade)模式又叫作门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,...
外观模式又称为门面模式,它提供了一个统一的接口,用来访问子系统中的一组接口。在C#项目中,外观模式可以简化客户端与复杂系统之间的交互。在这个实例中,可能会有一个外观类,该类负责调用工厂方法、处理配置...
5. **门面(外观)模式**:结构型设计模式,提供了一个统一的接口,用来访问子系统中的一组接口。它简化了子系统的使用,隐藏了子系统的复杂性,只对外暴露简单的接口。 6. **代理模式**:代理模式为其他对象提供一...
外观模式,又称为门面模式,其核心思想是将一组子系统的接口集成到一个高层接口中,为用户提供一个简化的、一致的使用界面。这样做的好处在于降低了客户端与子系统之间的耦合,使得客户端只需要知道外观接口,无需...
Java外观模式,也称为门面模式,是一种设计模式,它在软件工程中扮演着简化复杂系统接口的角色。这种模式主要用于减少客户端与多个子系统组件之间的交互复杂性,从而提高代码的可读性和可维护性。根据给定的标签...
外观模式,又称为门面模式,是一种结构型设计模式,它提供了一个简单的接口来访问复杂的子系统。在数据处理的例子中,`FileOperation`、`XMLDataConvertor`、`DataAnalysis`和`ReportDisplay`各自负责文件读取、数据...
5. 外观模式(Facade Pattern):为子系统中的一组接口提供一个统一的界面。 6. 享元模式(Flyweight Pattern):运用共享技术有效地支持大量细粒度的对象。 7. 门面模式(Front Controller Pattern):提供一个统一...
外观模式包含两个主要角色:门面(Facade)和子系统(Subsystems)。门面是客户端与子系统交互的唯一入口,它封装了子系统的所有接口,提供了一个简化的接口给客户端。子系统则是被门面所协调的复杂组件集合,它们...