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

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

     示意图代码如下:

    1 public abstract class AbstractClass {
    2     public abstract void primitiveOperation1();
    3     public abstract void primitiveOperation2();
    4     
    5     public void templateMethod(){
    6         primitiveOperation1();
    7         primitiveOperation2();
    8     }
    9 }
    AbstractClass
     1 public class ConcreteClassA extends AbstractClass {
     2 
     3     @Override
     4     public void primitiveOperation1() {
     5         System.out.println("A实现1.。。。");
     6 
     7     }
     8 
     9     @Override
    10     public void primitiveOperation2() {
    11         System.out.println("A实现2.。。。");
    12 
    13     }
    14 
    15 }
    ConcreteClassA
     1 public class ConcreteClassB extends AbstractClass {
     2 
     3     @Override
     4     public void primitiveOperation1() {
     5         System.out.println("B实现1.。。。");
     6         
     7     }
     8 
     9     @Override
    10     public void primitiveOperation2() {
    11         System.out.println("B实现2.。。。");
    12         
    13     }
    14 
    15 }
    ConcreteClassB
    public class TestTemplate {
        public static void main(String[] args) {
            AbstractClass cl = new ConcreteClassA();
            cl.templateMethod();
            cl = new ConcreteClassB();
            cl.templateMethod();
        }
    }
    
    结果:
    A实现1.。。。
    A实现2.。。。
    B实现1.。。。
    B实现2.。。。
    test

    模板方法模式是通过把不变行为搬到超类,去除子类中的重复代码,来体现它的优势。

  • 相关阅读:
    Markdown快捷笔记
    Linux常用命令
    Git使用
    HTML
    JavaScript-笔记2
    AngularJS-笔记2
    AngularJS-笔记1
    JQuery-笔记
    设置DataGridView的某个单元格为ComboBox
    记录文件浏览历史路径
  • 原文地址:https://www.cnblogs.com/cai170221/p/13489127.html
Copyright © 2011-2022 走看看