纯文学

以兰州拉面为例-白话Java抽象工厂模式

2017-03-27  本文已影响46人  青城楼主

上一篇我以烧烤为例,介绍Java普通工厂模式,现在我们以兰州拉面为例介绍抽象工厂模式。

首先角色转变下,想象自己是一个准备开兰州拉面馆,注意兰州拉面馆是个牌子哦,我等于开分店一样,好的,我们把开兰州拉面分店这个抽象出来,他相当于一个营业执照,执照上面经营范围是兰州拉面

package com;

//兰州拉面,它是一个牌子,可以开分店,这个接口是开一家兰州拉面的分店

public interface Lanzhoulamianshop {

//分店提供拉面

public Lanzhoulamianprovide getlamian();

}

分店最主要的功能,也是拉面老板最主要做的事情就是提供拉面

package com;

//生产兰州拉面接口,功能就是做兰州拉面

public interface Lanzhoulamianprovide {

public void providelamian();

}

现在我们开始开一家拉面馆,这家拉面馆指定为兰州拉面馆,他要实现开分店的接口,就是说我要相关营业执照,执照上面经营范围是 兰州拉面

package com;

//拉面店

public class Lamianshop implements Lanzhoulamianshop{

public Lamianshop(){}

public Lamianshop(String addr){

System.out.println("这是一家位于"+addr+"的拉面馆");

}

@Override

public Lanzhoulamianprovide getlamian() {

// TODO Auto-generated method stub

return new LamianImp();

}

}

完事具备,就差具体做拉面的实现了,上代码

package com;

public class LamianImp implements Lanzhoulamianprovide{

@Override

public void providelamian() {

// TODO Auto-generated method stub

System.out.println("做了一碗正宗的兰州拉面!");

}

}

吃货上场,开始叫外面

package com;

public class Ts {

public static void main(String[] args) {

//1,找到西兴的拉面馆

Lanzhoulamianshop lshop=new Lamianshop("西兴");

//2,下单

System.out.println("找到了,下单");

// 3,拉面馆做拉面

Lanzhoulamianprovide lp=lshop.getlamian();

lp.providelamian();

}

}

以兰州拉面为例-白话Java抽象工厂模式
上一篇下一篇

猜你喜欢

热点阅读