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();
    建造者模式:将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。

  • 相关阅读:
    保罗·多兰《设计幸福》阅读笔记
    依梦随忆(她)
    科技与人性的交汇处----人和机器人的边际在哪里?
    luogu 5月月赛 #A
    luogu P3916 图的遍历
    数论基础之组合数&计数问题
    洛谷——P3173 [HAOI2009]巧克力
    洛谷——P1748 H数
    洛谷——P1404 平均数
    POJ2454——Jersey Politics
  • 原文地址:https://www.cnblogs.com/liming1019/p/1642681.html
Copyright © 2011-2022 走看看