java写个冰箱的程序_模板模式的java实现例子 大象放入冰箱

最近在看《Thinking In UML大象》。看到里面讲接口设计的时候,举了“把大象放入冰箱”的例子。自己顺手就写了一下,用到了模板模式

从main方法开始

public static void main(String[] args) {

Refrige refrige = new Refrige();// 首先需要一个冰箱

Elephant elephant = new Elephant();// 然后需要一头大象

Job job = new JobHandler();

job.execute(refrige, elephant);// 最后把大象放入冰箱

}

Refrige和Elephant是简单的两个实体类,这里方便起见,就重写了toString

public class Refrige {

@Override

public String toString(){

return "海尔冰箱";

}

}

public class Elephant {

@Override

public String toString(){

return "大象";

}

}

Job是抽象类,其中定义了装大象的3步open, put, close,以及顺序执行这3步的方法execute

public abstract class Job {

public abstract void open(Refrige refrige);

public abstract void put(Elephant elephant);

public abstract void close();

public void execute(Refrige refrige, Elephant elephant){

System.out.print("Step 1: ");

this.open(refrige);// 第一步打开冰箱

System.out.print("Step 2: ");

this.put(elephant);// 第二步放入大象

System.out.print("Step 3: ");

this.close();// 第三步关闭冰箱

}

}

之后是具体实现装大象3步方法的子类JobHandler

public class JobHandler extends Job {

Refrige refrige;

Elephant elephant;

@Override

public void open(Refrige refrige) {

this.refrige = refrige;

System.out.println("打开 " + this.refrige);

}

@Override

public void put(Elephant elephant) {

this.elephant = elephant;

System.out.println("把 " + this.elephant + " 放入 " + this.refrige);

}

@Override

public void close() {

System.out.println("关闭 " + this.refrige);

}

}

这样就完成了”把大象放入冰箱“。

Step 1: 打开 海尔冰箱

Step 2: 把 大象 放入 海尔冰箱

Step 3: 关闭 海尔冰箱

其实主要就是要从接口的角度考虑问题吧(Job类)

具体的实现(JobHandler)可以根据具体的情况进行变更。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值