zoukankan      html  css  js  c++  java
  • 设计模式-建造者模式(三)

    创建胖子和瘦子实例

    1.创建人的抽象类

    public abstract class PersonBuilder
        {
            public abstract void BuildHead();
    
            public abstract void BuildBody();
    
            public abstract void BuildLeftArm();
    
            public abstract void BuildRightArm();
    
            public abstract void BuildLeftLeg();
    
            public abstract void BuildRightLeg();
                 
        }

    2.封装创建人的类

    public  class PersonDirector
        {
            private PersonBuilder _personbuilder = null;
            public PersonDirector() { }
    
            public PersonDirector(PersonBuilder personbuilder)
            {
                if (_personbuilder == null)
                    _personbuilder = personbuilder;
            }
            public void CreatePerson()
            {
                _personbuilder.BuildHead();
                _personbuilder.BuildBody();
                _personbuilder.BuildLeftArm();
                _personbuilder.BuildRightArm();
                _personbuilder.BuildLeftLeg();
                _personbuilder.BuildRightLeg();
            }
        }

    3.创建瘦子

    public class ThinPerson : PersonBuilder
        {
            public override void BuildBody()
            {
                Console.WriteLine("创建瘦身体");
            }
    
            public override void BuildHead()
            {
                Console.WriteLine("创建瘦脑袋");
            }
    
            public override void BuildLeftArm()
            {
                Console.WriteLine("创建瘦左胳膊");
            }
    
            public override void BuildLeftLeg()
            {
                Console.WriteLine("创建瘦左腿");
            }
    
            public override void BuildRightArm()
            {
                Console.WriteLine("创建瘦右胳膊");
            }
    
            public override void BuildRightLeg()
            {
                Console.WriteLine("创建瘦右腿");
            }
        }

    4.创建胖子

     public class FatPerson : PersonBuilder
        {
            public override void BuildBody()
            {
                Console.WriteLine("创建胖身体");
            }
    
            public override void BuildHead()
            {
                Console.WriteLine("创建胖脑袋");
            }
    
            public override void BuildLeftArm()
            {
                Console.WriteLine("创建胖左胳膊");
            }
    
            public override void BuildLeftLeg()
            {
                Console.WriteLine("创建胖左腿");
            }
    
            public override void BuildRightArm()
            {
                Console.WriteLine("创建胖右胳膊");
            }
    
            public override void BuildRightLeg()
            {
                Console.WriteLine("创建胖右腿");
            }
        }

    5.调用实例

                PersonBuilder pbt = new ThinPerson();
                PersonDirector pd = new PersonDirector(pbt);
                pd.CreatePerson();
                Console.WriteLine("-----------------------");
                PersonBuilder pbf = new FatPerson();
                PersonDirector pd1 = new PersonDirector(pbf);
                pd1.CreatePerson();
    萌橙 你瞅啥?
  • 相关阅读:
    已经完全付款的发票仍然可以选择并进行零金额的付款
    How to fix Safari can't download .DMG
    WPF学习笔记系列
    无废话WPF系列17:数据模版
    Mac 用GUI工具打开隐藏文件
    无废话WPF系列19:MVVM简单介绍
    ASP.NET MVC3实战系列(二):面向接口编程,提高系统可测试性。
    Windows文件被占用解决办法
    无废话WPF系列18:控件模版
    ASP.NET MVC3实战系列(三):MVC3中使用依赖注入(IOC)
  • 原文地址:https://www.cnblogs.com/daimaxuejia/p/12082447.html
Copyright © 2011-2022 走看看