番外:仅供个人学习
类图:
Facade知道哪些子系统负责处理哪些请求,将客户(Client)的请求转移给不同的子系统处理。而暴露给客户(client)的请求操作都是一致的。...
分类:
其他好文 时间:
2015-05-26 09:09:13
阅读次数:
97
ACE网络库的主要优势之一就是跨平台,ACE提供了操作系统API和编译器级别的跨平台解决方法,使开发人员不用再去关心操作系统和编译器的差异,但因此也带来了ACE的复杂性。ACE网络库的组织结构主要分为四层:OS适配层、wrapper facade层、框架层、服务层,其中OS适配层为操作系统API提供...
分类:
其他好文 时间:
2015-05-21 12:12:22
阅读次数:
128
外观模式(Facade)的定义:为子系统中的一组接口提供一个一致的界面。
Facade一个典型应用就是数据库JDBC的应用,如下例对数据库的操作:
public class DBCompare {
Connection conn = null;
PreparedStatement prep = null;
ResultSet rset = null;
try {
Cl...
分类:
编程语言 时间:
2015-05-20 13:11:03
阅读次数:
156
在阎宏博士的《JAVA与模式》一书中开头是这样描述门面(Facade)模式的: 门面模式是对象的结构模式,外部与一个子系统的通信必须通过一个统一的门面对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。医院的例子 现代的软件系统都是比较复杂的,设计师处理复杂系统的一个常见方法便是将其“.....
分类:
编程语言 时间:
2015-05-13 18:45:03
阅读次数:
195
外观模式(Facade):为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,时刻这一子系统更加容易使用。
使用场景:首先,在设计初期阶段,应该要有意识的将不同的两个层分离。比如经典的三层结构,就需要考虑在数据访问层和业务逻辑层、业务逻辑层和表示层的层与层之间建立外观的Facade。其次,在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂,大多数的模式使用时也都会产生很多很小...
分类:
编程语言 时间:
2015-05-12 09:32:09
阅读次数:
105
最近稍微大致地阅读了log4j的源码,毕竟这是Java开源日志框架里几乎最常用的一个实现。在大多数实际应用中,还需要诸如common-logging、slf4j等Facade模式日志框架对log4j进行封装,实际日志记录、输出等级、格式化等工作都是由log4j完成。本文把注意力集中在log4j身上,探讨一下这个开源日志框架的内部。
特性
关于log4j的具体配置以及例子这里就不多说了,...
分类:
其他好文 时间:
2015-05-10 22:32:14
阅读次数:
421
一、概述
为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
二、适用性
1.当你要为一个复杂子系统提供一个简单接口时。子系统往往因为不断演化而变得越来越 复杂。大多数模式使用时都会产生更多更小的类。这使得子系统更具可重用性,也更容 易对子系统进行定制,但这也给那些不需要定制子系统的用户带来一些使用上的困难。 Facade可以提供...
分类:
编程语言 时间:
2015-05-08 00:03:35
阅读次数:
171
1. 概述 外观模式,我们通过外观的包装,使应用程序只能看到外观对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度,并且提高了程序的可维护性。例子1:一个电源总开关可以控制四盏灯、一个风扇、一台空调和一台电视机的启动和关闭。该电源总开关可以同时控制上述所有电器设备,电源总开关即为该系统....
分类:
其他好文 时间:
2015-05-06 22:23:30
阅读次数:
152
一个客户类需要和多个业务类交互,而这些业务类经常会作为整体出现,由于涉及到的类比较多,导致使用时代码较为复杂。外观模式通过引入一个新的外观类(Facade)来实现该功能,外观类为多个业务类的调用提供统一入口,简化了类与类之间的交互。如果没有外观类,那么每个客户类需要和多个业务类之间进行复杂的交互,系统的耦合度将很大。外观模式是迪米特法则的一种具体实现,通过引入一个新的外观角色可以降低原有系统的复杂度,同时降低客户类与...
分类:
其他好文 时间:
2015-05-04 10:03:38
阅读次数:
135
一、描述
外观模式又叫门面模式,就是对一个复杂的系统进行包装,该系统对外的接口统一由外观类提供。当一个复杂的系统需要对外提供接口时,就需要将对外提供的接口统一封装在一个外观类中供外系统使用。外观模式最大的特点就是将细粒度的对象包装成粗粒度的对象,应用程序通过访问这个外观对象来完成细粒度对象的调用。这样应用程序只能看到外观对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度,并且提高了程...
分类:
编程语言 时间:
2015-05-02 23:27:48
阅读次数:
212