zoukankan      html  css  js  c++  java
  • 建造者模式

      static void Main(string[] args)
            {
    
                /*建造者模式,适合创建复杂对象,与工厂模式的关注点不一样,建造者重点关注,对象过程的创建
                 * 
                 * 
                 * 
                 */
    
                {
                    // 创建 福特 车   注重每个过程的建造
                    BuilderFord builder = new BuilderFord();
                    builder.BuilderEngin();
                    builder.BuilderWheels();
                    builder.BuilderGearbox();
                    builder.CreateCar();
                }
                {
                    // 创建 BYD
                    BuilderByd builder = new BuilderByd();
                    builder.BuilderEngin();
                    builder.BuilderWheels();
                    builder.BuilderGearbox();
                    builder.CreateCar();
                }
                {
    
                    // 这里进一步 进行抽象
                    BuilderByd builderByd = new BuilderByd();
                    IBuilder builder = new BuilderFactory(builderByd);
                    builder.GetCar();
                }
    
                Console.WriteLine("Hello World!");
            }
    

      

       public class BuilderFactory : IBuilder
        {
    
            private AbstructBuilder _builder = default(AbstructBuilder);
            public BuilderFactory(AbstructBuilder builder) => this._builder = builder;
            public void GetCar()=> this._builder.CreateCar();
    
    
        }
    
    
     public interface IBuilder
        {
            void GetCar();
    
        }
    

      

      public class BuilderFord : AbstructBuilder
        {
    
            private Wheels _wheels = default(Wheels);
            private Enginer _enginer = default(Enginer);
            private Gearbox _gearbox = default(Gearbox);
            public void BuilderWheels()
            {
                _wheels = new Wheels();
    
            }
            public void BuilderEngin()
            {
                _enginer = new Enginer();
    
            }
            public void BuilderGearbox()
            {
                _gearbox = new Gearbox();
    
            }
            public override void CreateCar()
            {
                // 使用上面三个对象
                Console.WriteLine($"{_enginer}{_wheels}{_gearbox}");
    
            }
    
        }
    

      

    public abstract class AbstructBuilder
        {
            public abstract void CreateCar();
        }
    

      

  • 相关阅读:
    吉他谱----see you again
    web----tcp三次握手
    python shell 执行
    python jieba
    NLP gensim 相似度计算
    linux shell expect 自动交互脚本
    docker 安装镜像
    数据库 MySQL 数据导入导出
    爬虫 puppeteer
    Linux ssh相关
  • 原文地址:https://www.cnblogs.com/hnzheng/p/12687719.html
Copyright © 2011-2022 走看看