zoukankan      html  css  js  c++  java
  • 开启Castle之旅前奏之回顾Template Method Pattern(模板方法模式)

    模板方法模式:模板方法模式准备一个抽象类,将部分逻辑以具体方法以及具体构造子的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。先制定一个顶级逻辑框架,而将逻辑的细节留给具体的子类去实现。


     

    参看下列简单实例代码:

    AbstractClass为基类,包含模板方法TemplateMethod(),在这个方法中调用PrimitiveOperation1()和PrimitiveOperation2(),其中这两个方法由子类ConcreteClass实现.

    using System;

    // "AbstractClass"


    abstract
    class AbstractClass
    {
      // Methods
      abstract public void PrimitiveOperation1();
      abstract public void PrimitiveOperation2();

      // The Template method
      public void TemplateMethod()
      {
        Console.WriteLine(
                    "In AbstractClass.TemplateMethod()");
        PrimitiveOperation1();
        PrimitiveOperation2();
      }
    }

    // "ConcreteClass"


    class
    ConcreteClass : AbstractClass
    {
      // Methods
      public override void PrimitiveOperation1()
      {
        Console.WriteLine(
            "Called ConcreteClass.PrimitiveOperation1()");
      }

      public override void PrimitiveOperation2()
      {
        Console.WriteLine(
            "Called ConcreteClass.PrimitiveOperation2()");
      }
    }

    /// <summary>
    /// Client test
    /// </summary>
    public class Client
    {
      public static void Main( string[] args )
      {
        // Create instance and call template method
        ConcreteClass c = new ConcreteClass();
        c.TemplateMethod();

      }
    }


    Output

    In AbstractClass.TemplateMethod()
    Called ConcreteClass.PrimitiveOperation1()
    Called ConcreteClass.PrimitiveOperation2()

     

  • 相关阅读:
    05-java学习-循环结构
    04-java学习-选择结构
    03-java学习-基本数据类型-运算符-键盘接收用户输入
    A02-java学习-classpath配置-标识符-java变量类型
    A01-java学习环境准备
    20190215面试-C#操作外设-多线程-shocket
    装饰者模式
    状态模式
    DllImport学习
    网络编程(一)----基础知识、数据流套接字
  • 原文地址:https://www.cnblogs.com/ice/p/128287.html
Copyright © 2011-2022 走看看