美文网首页
模板方法模式(行为型)

模板方法模式(行为型)

作者: 游牧族人 | 来源:发表于2018-09-06 16:50 被阅读15次

    定义:
    定义一个模板结构,将一些具体操作延迟到子类实现。
    通过模板方法,子类可以重新定义算法的某些步骤而不必改变算法结构,同时增加了代码复用。
    两个角色:
    抽象模板:定义模板之间公共部分。将不同的实现函数抽象出来。
    具体模板:定义每个模板之间不同的算法逻辑。
    例:写作业。

    // 抽象模板类
    public abstract class DoHomeWork
    {
        public void doHomeWord(){
            preparePen();
            preparePaper();
            work();
        }
        
        public void preparePen(){
            System.out.println("准备笔!");
        }
        
        public void preparePaper(){
            System.out.println("准备纸!");
        }
        // 抽象写作业方法,留给子类实现。
        public abstract void work();
    }
    -------------------------------------------------------------------------------------
    // 具体模板类
    public class DoMath extends DoHomeWork
    {
        @Override
        // 重写work方法。
        public void work()
        {
            System.out.println("开始写数学作业!");
        }
    }
    public class DoEnglish extends DoHomeWork
    {
        @Override
        // 重写work方法。
        public void work()
        {
            System.out.println("开始写英语作业!");
        }
    }
    
    // 客户端
    public class Client
    {
        public static void main(String[] args){
            DoHomeWork mathWork = new DoMath();
            mathWork.doHomeWord();
            System.out.println("-----------------------");
            DoHomeWork englishWork = new DoEnglish();
            englishWork.doHomeWord();
        }
    }
    Output:
    准备笔!
    准备纸!
    开始写数学作业!
    -----------------------
    准备笔!
    准备纸!
    开始写英语作业!
    

    相关文章

      网友评论

          本文标题:模板方法模式(行为型)

          本文链接:https://www.haomeiwen.com/subject/jtbxgftx.html