• 《大话设计模式》学习笔记9:建造者模式


      

      

    建造小人示例:

      

    1.Builder:

        public abstract class PersonBuilder
        {
            public abstract void BuildHead();
            public abstract void BuildBody();
            public abstract void BuildArm();
            public abstract void BuildLeg();
        }

    2.ConcreteBuilder:

        public class ThinPersonBuilder:PersonBuilder
        {
            public override void BuildHead()
            {
                Console.WriteLine("瘦头");
            }
    
            public override void BuildBody()
            {
                Console.WriteLine("瘦身体");
            }
    
            public override void BuildArm()
            {
                Console.WriteLine("瘦手");
            }
    
            public override void BuildLeg()
            {
                Console.WriteLine("瘦腿");
            }
        }
    
        public class FatPersonBuilder:PersonBuilder
        {
            public override void BuildHead()
            {
                Console.WriteLine("胖头");
            }
    
            public override void BuildBody()
            {
                Console.WriteLine("胖身体");
            }
    
            public override void BuildArm()
            {
                Console.WriteLine("胖手");
            }
    
            public override void BuildLeg()
            {
                Console.WriteLine("胖腿");
            }
        }

    3.Director:

        public class PersonDirector
        {
            private PersonBuilder personBuilder;
            public PersonDirector(PersonBuilder personBuilder)
            {
                this.personBuilder=personBuilder;
            }
            public void CreatePerson()
            {
                personBuilder.BuildHead();
                personBuilder.BuildBody();
                personBuilder.BuildArm();
                personBuilder.BuildLeg();
            }
        }

    4.客户端代码:

        class Program
        {
            static void Main(string[] args)
            {
                PersonBuilder thinPersonBuilder = new ThinPersonBuilder();
                PersonDirector thinPersonDirector = new PersonDirector(thinPersonBuilder);
                thinPersonDirector.CreatePerson();
    
                PersonBuilder fatPersonBuilder = new FatPersonBuilder();
                PersonDirector fatPersonDirector = new PersonDirector(fatPersonBuilder);
                fatPersonDirector.CreatePerson();
            }
        }

      建造者模式的好处是使得建造代码与表示代码分离,由于建造者隐藏了该产品是如何组装的,所欲若需要改变一个产品的内部表示,只需要再定义一个具体的建造者就可以了。

  • 相关阅读:
    Zabbix通过进程名监控进程状态配置详解
    kibana 统计field所有值百分比
    使用Logstash filter grok过滤日志文件
    python 修改文件内容
    清理elasticsearch的索引
    zabbix3.2.1安装graphtrees插件
    snmpwalk用法
    Zabbix通过SNMPv2监控DELL服务器的硬件信息
    zabbix上的宏(macro)介绍
    解决TeamViewer无法按给定网络地址联系伙伴
  • 原文地址:https://www.cnblogs.com/walden1024/p/4495445.html
Copyright © 2020-2023  润新知