小鸟学习设计模式(四)门面模式

           本来早上就可以写出来的,由于公司开会讨论,所以就一直到下午才有时间来写啊,不管怎样,感谢各位继续关注我的博客哦!今天我们主要一起来学习门面模式,所谓门面模式其实就是只看到面上的,看不到底下的,这就是门面的意思。接下来用一段来说明。

         假设我们要去租一个房子,那么我们肯定会走这几步,上网去看看哪里有房子在出租,然后亲自去看看房子的环境是否合我们的要求,接着就签订租房协议,然后就入住了,这是一种完全依靠自己的力量去找房的,因此代码如下:

        package cd.david.facade;
/*
 *
 * 定义一个租房的过程,网上找房,前去看房,签订合同,入住
 * */
public interface ITenement {
 /*
  * 网上找房
  * */
     public void surfTheInternet(double price,String closeTo);
     /*
      * 前去看房
      * */
     public void lookAtTheHouse();
     /*
      * 签订合同
      * */
     public void signaContract();
     /*
      * 入住
      * */
     public void checkIn();
    
    
}

********************************************************************

接着我们来实现这个租房的过程:

package cd.david.facade;
/*
 * 这是一个租房子的具体实现
 *
 * */
public class TenementImpl implements ITenement {

 @Override
 public void surfTheInternet(double price, String closeTo) {
        System.out.println("我在找一个房子 ,价格为 "+price+" 地点靠近 "+closeTo);
 }

 @Override
 public void lookAtTheHouse() {
  System.out.println("我来看房子了!");
 }

 @Override
 public void signaContract() {
  System.out.println("我在和房东签合同 ");
 }

 @Override
 public void checkIn() {
       System.out.println("我入住了·····");
 }

}

*****************************************************

实现完成我们就可以测试一下:

package cd.david.test.facade;

import cd.david.facade.ITenement;
import cd.david.facade.TenementImpl;

public class FacadeTest {

 /**
  * @param args
  */
 public static void main(String[] args) {
         ITenement zhangsan = new TenementImpl();
         zhangsan.surfTheInternet(1200, "supermarket");
         zhangsan.lookAtTheHouse();
         zhangsan.signaContract();
         zhangsan.checkIn();
        
 }

}

*************************************************************************************

测试结果如下:

我在找一个房子 ,价格为 1200.0 地点靠近 supermarket
我来看房子了!
我在和房东签合同
我入住了·····

**************************************************************************************

这事我们亲力亲为,但是有钱人就不想这么累,那么他会想找个人来代替他做这个事,于是租房的中介就产生了:

package cd.david.facade;
/*
 *
 * 此处我们用一个类来封装租房子的过程
 *
 * */
public class FacadePattern  {
 
 private TenementImpl tenement=new TenementImpl();

 public void doMediunThing(double price,String closeTo)
 {
  tenement.surfTheInternet(price, closeTo);
  tenement.lookAtTheHouse();
  tenement.signaContract();
  tenement.checkIn();
 }

}

*************************************************************

接下来我们再想租一个房子就简单了哦,

package cd.david.test.facade;

import cd.david.facade.FacadePattern;

public class FacadeTest {

 /**
  * @param args
  */
 public static void main(String[] args) {
        
         FacadePattern lisi = new FacadePattern();
         lisi.doMediunThing(1800, "school");
        
 }

}

*****************************************************

测试结果如下:

我在找一个房子 ,价格为 1800.0 地点靠近 school
我来看房子了!
我在和房东签合同
我入住了·····

****************************************************************

 

 

以上就是门面模式的简单实现,总的来说门面模式就是对使用者提供一个方法,这个方法封装了步骤,我们只知道结果就行,过程交给别人。

加油,那些和我一样处于笨鸟阶段的程序猿奋斗

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值