门脸模式Façade

门面 模式Façade

   今天看servlet一篇博客时,老是提到Façade这玩意儿,本来想以后有时间看看设计 模式的,结果经常出现就不好了,严重影响了对servlet的学习。所以就提前先了解了一下Façade这个 模式

首先,官方定义为:privide a unified interface to a set of interfaces in a subsystem. Façade defines a higher-level interface that makes the subsystem easier to use.(为子系统中的一组接口提供一个一致的界面,此 模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。)
看到这个定义首先想到了必须是spring,个人觉得spring是最大限度的使用这个 模式,spring中最最核心是什么? 那就是解决了所有类相互调用的复杂性,将对象之间的互相调用放到配置文件中了,无疑这个配置文件就是一个Façade,也就是定义中所说的高层接口。存属个人感觉,说的可能有点牵强了。O(∩_∩)O~ 下面是是该 模式的概念图。
图可以参见:附件!
这个 模式原理并不难。下面谈谈:


一般可以分为三个阶段:
   首先在设计的初期,应该有意识的将不同两个层分离,比如经典的三层架构,就需要考虑在数据访问层和业务逻辑层,业务逻辑层和表示层的层与层之间建立外观Façade,这样可以为复杂的子系统提供一个简单的借口,使得耦合打打降低。
   其次,在开发阶段,子系统往往因为不断的重构而变得越来越复杂,大多数 模式也会产生很多很多的小类,这本是好事,但是也给外部调用它们的外部程序带来了使用上的困难,增加外观Façade可以提供一个简单的借口,减少它们之间的依赖。
    第三,在维护一个遗留的系统时,可能这个系统已经非常难以维护和扩展了,但因为它包含非常重要的功能,新的需求开发必须要用到它。此时用外观 模式Façade也是非常合适的。可以为新系统开发一个外观Façade类,来提供设计粗糙或高度复杂的遗留代码的比较清晰简单的接口,让新系统与Façade对象交互,Façade与遗留代码交互所有复杂的工作。

例子一:
股民炒股代码
具体的股票类 :
Class stock1{            
	Public void sell(){}
	Public void buy(){}
}
Class Stock2{
	Public void sell(){}
	Public void buy(){}
}
Class Stock3{
	Public void sell(){}
	Public void buy(){}
}
Class Stock4{
	Public void sell(){}
	Public void buy(){}
}
 

客户端调用:
Static void Main(){
	Stock1 gu1=new Stock1();
Stock2 gu1=new Stock2();
Stock3 gu1=new Stock3();
Stock4 gu1=new Stock4();

Gu1.buy();
Gu2.buy();                    //   用户需要了解所有股票的具体情况。耦合性很高。
Gu3.buy();
Gu4.buy();
}

使用façade 模式之后,(这里的façade就相当于现实中基金了,买了基金之后就不需要对股票再研究了,这些交给基金经理来干就行了。)
基金类(即Facade)
Class fund{
	Stock1 gu1;
	Stock2 gu2;
	Stock3 gu3;
	Stock4 gu4;
	
	Public fund(){
		Gu1=new Stock1();
		Gu2=new Stock2();
		Gu3=new Stock3();
		Gu4=new Stock4();
}
Public void buyfund(){
Gu1.buy();
Gu2.buy();
Gu3.buy();
Gu4.buy();
}
Public void sellfund(){
Gu1.sell();
Gu2.sell();
Gu3.sell();
Gu4.sell();
}
}

客户端调用:
 Static void main(){
	Fund jijin=new fund();    //此时,很显然用户就不需要了解股票,买基金后就ok了
	Jijin.buyfund();
	Jijin.sellfund();
}
  
对于上面例子的解释。在上面例子中,每个股票就类似于一个子系统,基金就相当于一个façade。
    本来还有几个servlet和spring中源码的实例的,可是由于提交时,什么网络抓虫的原因挂了。导致我写了一个多点的博客就遮掩挂了。哎 看来以后写博客还是要在word中先备份。以后有时间再补上吧。 没有办法啊 ! 有木有啊,有木有啊!
                                     2011.04.08

原文:http://www.verydemo.com/demo_c143_i14477.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值