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

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

  • 相关阅读:
    40 +必不可少的前端Web开发备忘单
    web前端开发必读的HTML5的书籍
    Java String的内存机制
    使用C#通过Oracle.DataAccess连接Oracle,部署时需要注意版本问题
    CI(CodeIgniter)的"Disallowed Key Characters."异常处理
    开源软件许可协议简介
    读《考拉小巫的英语学习日记》有感
    vi的复制、粘贴、查找、删除等常用命令
    读《马云创业启示录》有感
    jQuery ajax 同步失效?
  • 原文地址:https://www.cnblogs.com/walden1024/p/4495445.html
Copyright © 2011-2022 走看看