用我的实习生活诠释门面(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();
    }

}

在北京中关村实习期间,我的生活就是这样的,呵呵。注:程序中的电脑是指我家里的notebook,用于娱乐。

posted on 2007-04-30 15:11 我为J狂 阅读(1119) 评论(0)  编辑  收藏 所属分类: 设计模式


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


网站导航:
 
<2007年4月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

导航

统计

常用链接

留言簿(11)

随笔分类(48)

文章分类(29)

常去逛逛

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜