《大话设计模式》读书笔记-建造者模式
// 建造者類
??? 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();
建造者模式:將一個(gè)復(fù)雜對(duì)象的構(gòu)建與表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。
轉(zhuǎn)載于:https://www.cnblogs.com/liming1019/archive/2010/01/08/1642681.html
總結(jié)
以上是生活随笔為你收集整理的《大话设计模式》读书笔记-建造者模式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信人格专业测试软件,如何在微信公众号中
- 下一篇: asp.net ajax控件工具集 Au