Java世界

学习笔记

常用链接

统计

积分与排名

天籁村

新华网

雅虎

最新评论

简单诠释门面(Facade)模式

        门面模式要求一个子系统的外部与其内部的通信必须通过一个统一的门面对象进行。门面模式提供了一个高层次的接口,使得子系统更易于使用。闲言少叙,下面我就将我早上离开家和晚上回到家的习惯动作抽象为符合门面模式的Java代码。

门面角色:

/*
 *@author 我为J狂 建立日期 2007-4-30
 *
 
*/

package  net.blogjava.lzqdiy.facade;

public   class  Life
{
    
private  Door door = new  Door();

    
private  Light light = new  Light();

    
private  PC pc = new  PC();
    
// 离开家
     public   void  leaveHome()
    
{
        pc.turnOff();
// 关闭电脑
        light.turnOff(); // 关上灯
        door.close(); // 关上门
    }

    
// 回到家
     public   void  goBackHome()
    
{
        door.open();
// 打开门
        light.turnOn(); // 打开灯
        pc.turnOn(); // 启动电脑
    }

}

子系统角色:

/*
 *@author 我为J狂 建立日期 2007-4-30
 *
 
*/

package  net.blogjava.lzqdiy.facade;

public   class  Door
{
    
private  Key key  =   new  Key();

    
public   void  open()
    
{
        key.use(
" 开门 " );
        System.out.println(
" 门已经打开! " );
    }


    
public   void  close()
    
{
        key.use(
" 关门 " );
        System.out.println(
" 门已经关闭! " );
    }

}

/*
*@author 我为J狂 建立日期 2007-4-30
*
*/

package  net.blogjava.lzqdiy.facade;

public   class  Light
{
    
public   void  turnOn()
    
{
        System.out.println(
" 电灯已经打开! " );
    }

    
public   void  turnOff()
    
{
        System.out.println(
" 电灯已经关闭! " );
    }

}

/*
*@author 我为J狂 建立日期 2007-4-30
*
*/

package  net.blogjava.lzqdiy.facade;

public   class  PC
{
    
public   void  turnOn()
    
{
         System.out.println(
" 电脑已经打开! " );
    }


    
public   void  turnOff()
    
{
        System.out.println(
" 电脑已经关闭! " );
    }

}

/*
*@author 我为J狂 建立日期 2007-4-30
*
*/

package  net.blogjava.lzqdiy.facade;

public   class  Key
{
   
public   void  use(String action)
   
{
       System.out.println(
" 使用钥匙 " + action + " ! " );
   }

}

客户端:

/*
*@author 我为J狂 建立日期 2007-4-30
*
*/

package  net.blogjava.lzqdiy.facade;

public   class  Client
{

    
private   static  Life life = new  Life();
    
public   static   void  main(String[] args)
    
{
       System.out.println(
" 一天忙碌的生活开始了. " );
       life.leaveHome();
       System.out.println(
" 呵呵,回家了. " );
       life.goBackHome();
    }

}



祝,大家享受其中的快乐!

posted on 2008-02-28 15:37 Rabbit 阅读(219) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: