六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 103|回复: 0

java 门面模式

[复制链接]

升级  88%

48

主题

48

主题

48

主题

秀才

Rank: 2

积分
182
 楼主| 发表于 2013-2-5 01:47:11 | 显示全部楼层 |阅读模式
门面模式有三个角色组成:
1)         门面角色( facade ):这是门面模式的核心。它被客户角色调用,因此它熟悉子系统的功能。它内部根据客户角色已有的需求预定了几种功能组合。
2)         子系统角色:实现了子系统的功能。对它而言, façade 角色就和客户角色一样是未知的,它没有任何 façade 角色的信息和链接。
3)         客户角色:调用 façade 角色来完成要得到的功能
 
模式作用:
将一些复杂的操作封装起来,以一个简单的接口提供给客户端.
可以定义多个子系统, 层次之间的粗细粒度需要把握好.一个子系统一个门面类

模式应用:
       Facade 一个典型应用就是进行数据库连接。一般我们在每一次对数据库进行访问,都要进行以下操作:先得到 connect 实例,然后打开 connect 获得连接,得到一个 statement ,执行 sql 语句进行查询,得到查询结果集。
       我们可以将这些步骤提取出来,封装在一个类里面。这样,每次执行数据库访问只需要将必要的参数传递到这个类中就可以了。
 
代码:

  • public class ShopingCenter  
  • {  
  •     //到购物中心的服饰店购买  
  •     public void clothingStore()  
  •     {  
  •         Clothing c = new Clothing();  
  •         c.getClothing();  //购买到衣服  
  •     }  
  •   
  •     //到购物中心的电器店购买  
  •      public void EleStore()  
  •     {  
  •         Ele c = new Ele();  
  •         c.getEle();  //购买到电器  
  •     }  
  •      
  •     //到购物中心的首饰店购买  
  •     public void JewelryStore()  
  •     {  
  •         Jewelry c = new Jewelry();  
  •         c.getJewelry();  //购买到首饰  
  •     }  

客户端代码:

  • ShopingCenter sc = new ShopingCenter();  
  • sc.clothingStore();  
  • sc.EleStore();  
  • sc.JewelryStore(); 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表