zoukankan      html  css  js  c++  java
  • 设计模式(十三):模板模式

    优点:

      ① 定义了一个算法骨架或行为族,而将一些步骤延迟到子类中,可以把公共的代码移到父类里面,从而避免代码重复。

      ② 具体细节步骤实现定义在子类中,使得子类可以不改变一个算法的整体结构即可以重新定义该算法的某些特定步骤。

    缺点:

      ① 客户端必须知道所有的策略类,并自行决定使用哪一个策略类。

      ② 由于策略模式把每个具体的策略实现都单独封装成为类,如果备选的策略很多的话,那么对象的数目就会很可观。

    适用范围:

      算法,折扣活动等

    客户端: 

      DodishTemplate eggsWithTomato = new EggsWithTomato();   //西红柿炒鸡蛋
      eggsWithTomato.doDish();

      System.out.println("-----------------------------");

      DodishTemplate bouilli = new Bouilli();  //红烧肉
      bouilli.doDish();

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

        /**
         * DodishTemplate (做菜模板接口,备料、做菜和上菜方法,及整体过程的方法doDish())
         * EggsWithTomato(西红柿炒鸡蛋)   Bouilli(红烧肉)  -- 两个实例,同一模板做出不同的菜
         */
  • 相关阅读:
    关键:GridView中的AutoGenerateColumns
    微软Space关门了,代码转到博客园了!
    程序中变量的命名方法
    [转]C#原始类型扩展方法—this参数修饰符
    .net缩放CAD窗口
    【解决】C#工程中ACCESS数据库无法插入数据
    删除扩展数据
    外部启动CAD
    webpack的配置文件entry与output
    es6模块学习总结
  • 原文地址:https://www.cnblogs.com/shushengyou/p/10243320.html
Copyright © 2011-2022 走看看