了解模板设计模式
程序员文章站
2022-05-18 10:45:56
...
模板设计模式
模板设计模式的本质是利用了抽象类对子类强加的覆写的限制实现的。
模板设计主要是在父类(抽象类)定义一些公共的行为准则,而后需要进行某些处理的时候子类进行相应的方法覆写即可(模板设计模式在整个的Java中最为常见的应用就是Servlet程序开发)。
/**
* 定义公共行为
*/
abstract class AbstractAction{
//定义操作指令
public static final int EAT = 1;
public static final int SLEEP = 2;
public static final int WOEK = 5;
public void command(int ch){
switch (ch){
case EAT :
this.eat();
break;
case SLEEP:
this.sleep();
break;
case WOEK:
this.work();
break;
case EAT + SLEEP + WOEK:
this.eat();
this.sleep();
this.work();
break;
}
}
//定义公共的行为准则
public abstract void eat();
public abstract void sleep();
public abstract void work();
}
class Human extends AbstractAction{
@Override
public void eat() {
System.out.println("人坐在椅子上吃饭");
}
@Override
public void sleep() {
System.out.println("人躺在床上睡觉");
}
@Override
public void work() {
System.out.println("人努力的工作挣钱养家");
}
}
class Pig extends AbstractAction{
@Override
public void eat() {
System.out.println("猪一直呼呼的吃");
}
@Override
public void sleep() {
System.out.println("猪吃饱了呼呼的睡觉zzz");
}
@Override
public void work() {
}
}
class Robot extends AbstractAction{
@Override
public void eat() {
System.out.println("机器人充电补充能量");
}
@Override
public void sleep() {
}
@Override
public void work() {
System.out.println("机器人没日没夜的玩命工作");
}
}
/**
* 测试类
*/
public class Test {
public static void main(String[] args) {
execute(new Human());
execute(new Pig());
execute(new Robot());
}
/**
* 执行操作
* @param action
*/
public static void execute(AbstractAction action){
action.command(AbstractAction.EAT + AbstractAction.SLEEP + AbstractAction.WOEK);
}
}
执行结果:
人坐在椅子上吃饭
人躺在床上睡觉
人努力的工作挣钱养家
猪一直呼呼的吃
猪吃饱了呼呼的睡觉zzz
机器人充电补充能量
机器人没日没夜的玩命工作
上一篇: 飞机上可以带水产品吗?哪些吃的不能上飞机
下一篇: 消息队列