欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

了解模板设计模式

程序员文章站 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
机器人充电补充能量
机器人没日没夜的玩命工作

相关标签: 了解设计模式