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

       也是抽象与实现分离,其意图是定义一个模板,然后把具体实现交给子类完成.

    image_2

    1.接口

    interface IPrimitives {
       string Operation1();
         string Operation2();
     }

    2.实现

    class ClassA : IPrimitives {
       public string Operation1() {
         return "ClassA:Op1 ";
       }
       public string Operation2() {
         return "ClassA:Op2 ";
       }
     }
     
     class ClassB : IPrimitives {
       public string Operation1() {
         return "ClassB:Op1 ";
       }
       public string Operation2() {
         return "ClassB.Op2 ";
       }
     }

    3.调用

    class Algorithm {
       public void TemplateMethod(IPrimitives a) {
           string s = 
             a.Operation1() +
             a.Operation2();
            Console.WriteLine(s);
       }
     }

    4.客户端调用

    static void Main() {
       Algorithm m = new Algorithm();
            
       m.TemplateMethod(new ClassA());
       m.TemplateMethod(new ClassB());
       Console.ReadKey();
     }

    注意此模式与桥接模式很像,区别在于这里接口传值是是方法里实现的,这样就灵活一些.模板模式也广泛用于抽象类.这个模式其实大家一直在用,具体怎么用,还视具体情况
  • 相关阅读:
    新男人八题---AStringGame
    hihocoder1457
    SPOJ
    后缀自动机
    牛客练习赛13D
    Educational Codeforces Round 38
    Binary Differences
    laravel 带条件的分页查询
    url添加时间戳
    安卓无法上传照片
  • 原文地址:https://www.cnblogs.com/Clingingboy/p/1809551.html
Copyright © 2011-2022 走看看