美文网首页
设计模式-模板

设计模式-模板

作者: ZjyMac | 来源:发表于2018-05-07 13:56 被阅读0次

    一,模板模式详解

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

    • 使用场景
      (1)多个子类有共有的方法,并且逻辑基本相同时
      (2)重要,复杂的算法,可以把核心算法设计为模板方法
      (3)重构时

    • UML

      image.png
    • 代码示例

    public abstract class AbstractWork {
        protected void getUp() {
            Log.e("zjy", "起床");
        }
    
        protected abstract void goToWork();
    
        protected abstract void work();
    
        protected abstract void getOffWork();
    
        public final void newDay() {
            getUp();
            goToWork();
            work();
            getOffWork();
        }
    
    }
    
    public class BossWork extends AbstractWork{
        @Override
        protected void goToWork() {
            Log.e("zjy", "开车上班");
        }
    
        @Override
        protected void work() {
            Log.e("zjy", "分配员工");
        }
    
        @Override
        protected void getOffWork() {
            Log.e("zjy", "开车下班");
        }
    }
    
    
    public class StaffWork extends AbstractWork{
        @Override
        protected void goToWork() {
            Log.e("zjy", "公交上班");
        }
    
        @Override
        protected void work() {
            Log.e("zjy", "处理工作");
        }
    
        @Override
        protected void getOffWork() {
            Log.e("zjy", "公交下班");
        }
    }
    
      BossWork bossWork = new BossWork();
            bossWork.newDay();
            StaffWork staffWork = new StaffWork();
            staffWork.newDay();
    

    二,Android中的实际运用

    • Activity&&Fragment
      生命周期方法采用模板模式
    • AsyncTask
      image.png

    相关文章

      网友评论

          本文标题:设计模式-模板

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