zoukankan      html  css  js  c++  java
  • 【设计模式】4.建造者模式

    说明:将很多事情,一件一件的按顺序组装形成,StringBuilding就是建造者模式。

    场景:当一个流程由很多功能组成,可以直接使用,然后每个实现就好。

    实现:

     public class Customer
        {
            public void buy()
            {
                //客户来组装1台电脑
                zhihui boss = new zhihui();//老板
                lingjian emp1 = new lingjian_1();//员工1
                boss.gongzuo(emp1);//老板指挥
                zuzhuang zz = emp1.getComputer();//员工1组装
                zz.show();//组装完成
            }
        }
    
        /// <summary>
        /// 组装电脑需要的步骤,这里只组装了cpu,硬盘
        /// </summary>
        public abstract class lingjian
        {
            public abstract void cpu();
            public abstract void disk();
    
            public abstract zuzhuang getComputer();
        }
    
        /// <summary>
        /// 组装的方法
        /// </summary>
        public class zuzhuang
        {
            private IList<string> qingdan = new List<string>();
    
            public void add(string str)
            {
                qingdan.Add(str);
            }
    
            public void show()
            {
                Console.WriteLine("开始组装");
                foreach(string s1 in qingdan)
                {
                    Console.WriteLine(s1+"完成");
                }
            }
        }
    
        /// <summary>
        /// 指挥干活
        /// </summary>
        public class zhihui
        {
            public void gongzuo(lingjian lj)
            {
                lj.cpu();
                lj.disk();
                lj.getComputer();
            }
        }
        public class lingjian_1 : lingjian
        {
            zuzhuang zz = new zuzhuang();
            public override void cpu()
            {
                zz.add("cpu");
            }
    
            public override void disk()
            {
                zz.add("硬盘");
            }
    
            public override zuzhuang getComputer()
            {
                return zz;
            }
        }
  • 相关阅读:
    监听事件 队列 邮件发送
    elasticsearch 天气
    elasticsearch
    event 监听事件
    observer 监听的实现 laravel 框架
    中间件
    git 代码 上传到码云
    laravel 省略入口文件 index.php
    limit offset 和limit
    CSS变形和动画
  • 原文地址:https://www.cnblogs.com/laokchen/p/13532847.html
Copyright © 2011-2022 走看看