模板模式

2018-01-30  本文已影响5人  andpy

模板方法模式

概念:通过定义一个算法的骨架,而将算法中的步骤延迟到子类,这样子类就可以复写这些步骤的实现来实现特定的算法.

使用场景

顶层接口:
AbstractWork

public abstract class AbstractWork {
    protected void getUp() {
        System.out.println("起床了");
    }

    protected abstract void goToWork();

    protected abstract void work();

    protected abstract void getOffWork();

    /**
     * TemplateMethod,共同调用的方法.
     */
    public final void newDay() {
        getUp();
        goToWork();
        work();
        getOffWork();
    }
}

子类一:

public class BossWork extends AbstractWork {
    @Override
    protected void goToWork() {
        System.out.println("boss go to work by car");
    }

    @Override
    protected void work() {
        System.out.println("boss work ");
    }

    @Override
    protected void getOffWork() {
        System.out.println("boss get off work at 6:00 pm");
    }
}

子类二:

public class StaffWork extends AbstractWork {
    @Override
    protected void goToWork() {
        System.out.println("employee  go to work by car");
    }

    @Override
    protected void work() {
        System.out.println("employee work ");
    }

    @Override
    protected void getOffWork() {
        System.out.println("employee get off work at 5:00 pm");
    }
}

测试

public static void main(String[] args) {
    BossWork bossWork = new BossWork();
    StaffWork staffWork = new StaffWork();
    bossWork.newDay();
    staffWork.newDay();
}

模板小结

Android模板方法的运用

上一篇 下一篇

猜你喜欢

热点阅读