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;
            }
        }
  • 相关阅读:
    ELK--filebeat命令行参数解释
    ELK--filebeat详解
    centOS7 修改DNS
    nginx-日志统计
    ceph 安装ceph问题汇总
    正则 挖网站表格复习
    c#反射优化 表达式树
    combotree 满足条件的节点不可选中
    NHibernate获取实体配置信息(表名,列名等等)
    jqgrid 单元格放超链接文本
  • 原文地址:https://www.cnblogs.com/laokchen/p/13532847.html
Copyright © 2011-2022 走看看