zoukankan      html  css  js  c++  java
  • 1.4模板方法模式

    1.概念:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变算法的结构即可重新定义该算法的某些特定步骤。


    2.模板方法的特点:
         当代码环境中,子类们的行为方法存在重复,通过抽取封装不变的行为到父类,从而去除子类重复代码,代码因重复利用变得简洁。    
     
        
         模板方法非常简单,其核心是利用了继承机制,AbstractClass是一个抽象模板,包括基本方法和模板方法。其中基本方法是一个已经实现的虚方法,模板方法是具体的方法,他们构成了顶级的逻辑骨架。而逻辑的具体操作延迟到具体的子类ConcreteClass来实现。
     
    代码示例:
    public class TestPaper  
    {
         //即方法骨架,一般是具体方法,可以一个或多个,实现对基本方法的调用。
         protected void  TestQuestion1()
         {
              Console.WriteLine("1+1=?");
              Console.WriteLine("答案:"+Answer1());
         } 
     
         //由子类实现,并在模板方法中被调用
         public virtual string Answer1() { return ""; } 
         public virtual string Answer2() { return ""; } 
         ……
    }
     
    public class StudentATestPaper:TestPaper
    {
         protected override string Answer1() {return "A"; }
         protected override string Answer2() {return "B"; }
    }
     
    客户端:
    StudentATestPaper stuA=new StudentATestPaper();
    stuA.TestQuestion1();
    stuA.TestQuestion2();

     

    学习所得:
         编码中,同样的代码出现过两次,就需要适当的对设计产生怀疑。     

     
     
     
     
  • 相关阅读:
    信息 信息熵 信息增益
    数据挖掘导论
    拆包粘包问题的解决方案
    杂物
    《深入理解计算机系统》
    Flex布局
    jquery常用的选择器
    jdk源码阅读优先级
    js和jquery页面初始化加载函数的方法及先后顺序
    SpringBoot定时器任务,每月一号执行
  • 原文地址:https://www.cnblogs.com/jackyfei/p/3620933.html
Copyright © 2011-2022 走看看