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();
            }
        }

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

  • 相关阅读:
    vs已停止工作
    2.3.4 工具运行和错误解决方法
    vs2010 :0X80041FEB 程序集无法修改版等内容
    VS2010 F5调试时出现:“ 尝试运行项目时出错:未捕获通过反射调用的方法引发的异常”解决
    栅格计算器中空间分析函数
    设备系统,个人消费系统
    知己知彼
    ASP.NET MVC 实现二级域名
    自定义ASP.NET MVC Html辅助方法
    MVC系统过滤器(局部缓存,局部动态)
  • 原文地址:https://www.cnblogs.com/walden1024/p/4495445.html
Copyright © 2011-2022 走看看