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("倒大白菜进锅中");
            }
        }
  • 相关阅读:
    python虚拟环境--virtualenv
    求导法则和高阶导数
    restful规范
    python协程--yield和yield from
    打印质数
    更改docker的存储位置
    同台ECS安装多个mysql
    jenkins + gitlab + harbor + k8s 部署项目
    jenkins 配置maven
    gitlab + jenkins 持续集成
  • 原文地址:https://www.cnblogs.com/gaocong/p/6869026.html
Copyright © 2011-2022 走看看