本来早上就可以写出来的,由于公司开会讨论,所以就一直到下午才有时间来写啊,不管怎样,感谢各位继续关注我的博客哦!今天我们主要一起来学习门面模式,所谓门面模式其实就是只看到面上的,看不到底下的,这就是门面的意思。接下来用一段来说明。
假设我们要去租一个房子,那么我们肯定会走这几步,上网去看看哪里有房子在出租,然后亲自去看看房子的环境是否合我们的要求,接着就签订租房协议,然后就入住了,这是一种完全依靠自己的力量去找房的,因此代码如下:
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
我来看房子了!
我在和房东签合同
我入住了·····
****************************************************************
以上就是门面模式的简单实现,总的来说门面模式就是对使用者提供一个方法,这个方法封装了步骤,我们只知道结果就行,过程交给别人。
加油,那些和我一样处于笨鸟阶段的程序猿