zoukankan      html  css  js  c++  java
  • 《大话设计模式》学习笔记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();
            }
        }

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

  • 相关阅读:
    ubuntu上virtualbox无法找到usb设备【解决】
    try or install Ubuntu on MeegoPad T01
    213. 打家劫舍 II
    198. 打家劫舍
    70. 爬楼梯
    62. 不同路径
    idea | gitee 码云
    数据库 | 远程连接centos7上数据库
    JSP && Servlet | 上传图片到数据库
    bootstrap | 模态框
  • 原文地址:https://www.cnblogs.com/walden1024/p/4495445.html
Copyright © 2011-2022 走看看