zoukankan      html  css  js  c++  java
  • 《大话设计模式》读书笔记建造者模式

    // 建造者类
        class PersonDirector
        {
            private PersonBuilder pb;

            public PersonDirector(PersonBuilder pb)
            {
                this.pb = pb;
            }

            public void CreatePerson()
            {
                pb.BuildHead();
                pb.BuildBody();
                pb.BuildArmLeft();
                pb.BuildArmRight();
                pb.BuildLegLeft();
                pb.BuildLegRight();
            }
        }

    abstract class PersonBuilder
        {
            // 建造人的抽象类
            protected Graphics g;
            protected Pen p;

            public PersonBuilder(Graphics g, Pen p)
            {
                this.g = g;
                this.p = p;
            }

            public abstract void BuildHead();
            public abstract void BuildBody();
            public abstract void BuildArmLeft();
            public abstract void BuildArmRight();
            public abstract void BuildLegLeft();
            public abstract void BuildLegRight();
        }
    // 瘦人类
        class PersonThinBuilder : PersonBuilder
        {
            public PersonThinBuilder(Graphics g,Pen p):base(g,p)
            {

            }

            public override void BuildHead()
            {
                g.DrawEllipse(p,50,20,30,30);
            }

            public override void BuildBody()
            {
                g.DrawRectangle(p,60,50,10,50);
            }

            public override void BuildArmLeft()
            {
                g.DrawLine(p,60,50,40,100);
            }

            public override void BuildArmRight()
            {
                g.DrawLine(p,70,50,90,100);
            }

            public override void BuildLegLeft()
            {
                g.DrawLine(p,60,100,45,150);
            }

            public override void BuildLegRight()
            {
                g.DrawLine(p,70,100,85,150);
            }
        }
    Pen p = new Pen(Color.Black);
    PersonThinBuilder ptb = new PersonThinBuilder(pictureBox1.CreateGraphics(), p);
    PersonDirector pdThin = new PersonDirector(ptb);
    pdThin.CreatePerson();
    建造者模式:将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。

  • 相关阅读:
    nodejs中的全局函数setTimeout/clearTimeout,setInterval/clearInterval,unref/ref
    nodejs的核心对象console
    创建一个服务器,解析当前的url并根据url并作出相应的响应
    nodejs创建服务并加载一个html文件
    nodejs读文件
    Get和Post的区别
    ui-grid 网格布局--jQueryMobile
    web开发常见问题
    全选和全不选
    微信小程序-调用工具js文件/utils文件中的函数/变量
  • 原文地址:https://www.cnblogs.com/liming1019/p/1642681.html
Copyright © 2011-2022 走看看