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();
    萌橙 你瞅啥?
  • 相关阅读:
    hdu 3415 Max Sum of MaxKsubsequence
    poj 2243 Knight Moves
    【LCD手册】飞凌3.5/4.3/5.6/7/8 寸LCD手册大全下载
    【转载zq2002好文章】Windows CE 休眠唤醒全面解析(基于2440平台)(1)(2)(3)
    【转载】如果做到窗口自动适应不同尺寸屏幕的尺寸?
    【转载】wince6.0+s3c6410摄像头驱动修改
    推荐一个比较活跃的ARM/WinCE/LinuxQQ群
    【转载】微软的USB摄像头驱动,
    【收集】ARM+WinCE QQ 群
    【转载】S3C6410移植日记系列
  • 原文地址:https://www.cnblogs.com/daimaxuejia/p/12082447.html
Copyright © 2011-2022 走看看