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

    定  义:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中

              模板方法使子类可以不改变一个算法的结构即可重定义该算法中的一些特定步骤。

    结构图

    AbstractClass.cs:

     abstract class AbstractClass
        {
            public abstract void PrimitiveOperation1();
            public abstract void PrimitiveOperation2();
    
            public void TemplateMethod()
            {
                PrimitiveOperation1();
                PrimitiveOperation2();
            }
    
        }
    View Code

    ConcreteClassA.cs:

     class ConcreteClassA : AbstractClass
        {
            public override void PrimitiveOperation1()
            {
                Console.WriteLine("具体类A方法1实现");
            }
    
            public override void PrimitiveOperation2()
            {
                Console.WriteLine("具体类A方法2实现");
            }
        }
    View Code

    ConcreateClassB.cs:

    class ConcreteClassB : AbstractClass
        {
            public override void PrimitiveOperation1()
            {
                Console.WriteLine("具体类B方法1实现");
            }
    
            public override void PrimitiveOperation2()
            {
                Console.WriteLine("具体类B方法2实现");
            }
        }
    View Code

    客户端实现:

     class Program
        {
            static void Main(string[] args)
            {        
                AbstractClass c;
    
                c = new ConcreteClassA();
                c.TemplateMethod();
    
                c = new ConcreteClassB();
                c.TemplateMethod();
    
                Console.Read();
            }
        }
    View Code


    优势:模板方法模式把不变的行为搬移到超类,去除了子类中重复的代码,提供了一个良好的代码复用平台。

  • 相关阅读:
    C#网络编程.套接字.TcpListener.TcpClient
    GUI原型设计工具
    C#网络编程.2.套接字.TcpListener.TcpClient.服务端客户端通信
    网站开发策略选择
    jsdefinitionguide0221
    jquery0224
    sql trigger
    实现类似51job的选择框
    完美曲线
    MonoDroid
  • 原文地址:https://www.cnblogs.com/qianxingdewoniu/p/3544607.html
Copyright © 2011-2022 走看看