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

    // 客户端调用
        class Client
        {
            static void Main(string[] args)
            {
                // 创建一个菠菜实例并调用模板方法
                Spinach spinach = new Spinach();
                spinach.CookVegetabel();
                Console.Read();
            }
        }
    
        public abstract class Vegetabel
        {
            // 模板方法,不要把模版方法定义为Virtual或abstract方法,避免被子类重写,防止更改流程的执行顺序
            public  void CookVegetabel()
            {
                Console.WriteLine("抄蔬菜的一般做法");
                this.pourOil();
                this.HeatOil();
                this.pourVegetable();
                this.stir_fry();
            }
    
            // 第一步倒油
            public  void pourOil()
            {
                Console.WriteLine("倒油");
            }
    
            // 把油烧热
            public  void HeatOil()
            {
                Console.WriteLine("把油烧热");
            }
    
            // 油热了之后倒蔬菜下去,具体哪种蔬菜由子类决定
            public abstract void pourVegetable();
    
            // 开发翻炒蔬菜
            public  void stir_fry()
            {
                Console.WriteLine("翻炒");
            }
        }
    
        // 菠菜
        public class Spinach : Vegetabel
        {
           
            public override void pourVegetable()
            {
                Console.WriteLine("倒菠菜进锅中");
            }
        }
    
        // 大白菜
        public class ChineseCabbage : Vegetabel
        {      
            public override void pourVegetable()
            {
                Console.WriteLine("倒大白菜进锅中");
            }
        }
  • 相关阅读:
    常用的JS代码
    静态类相关
    并查集
    RMQ
    模考题line
    递归模考题 集合
    KMP
    快速幂
    读现代软件工程之构建之法的疑问
    实验二
  • 原文地址:https://www.cnblogs.com/gaocong/p/6869026.html
Copyright © 2011-2022 走看看