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

转载于:https://www.cnblogs.com/liming1019/archive/2010/01/08/1642681.html

《大话设计模式》读书笔记-建造者模式相关推荐

  1. 大话设计模式读书笔记

    主题 概要 设计模式 大话设计模式读书笔记 编辑 时间 新建 20170423 序号 参考资料 1 大话设计模式 重新看了一遍设计模式,除了一些已经特别熟悉的模式,都自己敲了一遍代码,有些豁然开朗的感 ...

  2. 大话设计模式读书笔记11----建造者模式(Builder)

    建造者模式(Builder):将一个复杂对象的构建与它的表示分离,使得同样的建造过程可以创建不同的表示. 1.Builder是什么? 是创建一个Product对象的各个部件指定的抽象接口. 2.Con ...

  3. 设计模式之笔记--建造者模式(Builder)

    建造者模式(Builder) 定义 建造者模式(Builder),将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 类图 描述 Builder:定义一个建造者抽象类,以规范产 ...

  4. 大话设计模式读书笔记之原型模式

    由于大话这本书是以C#语言为基础写就的,本设计模式的例子中使用了一些c#中的API,因此就不再引用此书中的例子了,参考了一篇博客园中的大神写就的浅显易懂的JAVA版原型模式,在此奉上链接,以供大家学习 ...

  5. 大话设计模式读书笔记(十三) 状态模式

    状态模式: 状态模式定义: 状态模式(State):当一个对象的内在状态改变时允许改变其行为,这个对象看起来像改变了其子类. 状态模式UMl类图: 状态模式Java代码实现 public class ...

  6. 大话设计模式读书笔记--4.代理模式

    生活中的例子: 班主任让班长通知班委下午3点开会 班长就是班主任的代理 代理模式的目的是: 隐藏真实访问对象,同时可以处理别的事情 定义 代理模式:为其他对象提供一种代理以控制对这个对象的访问 也就是 ...

  7. 大话设计模式读书笔记--6.原型模式

    简单的复制粘贴极有可能造成重复代码的灾难, 但是java中提供了克隆的功能, 如果一个对象创建过程复杂,又要频繁使用, 在初始化信息不发生变化的情况下,应当采取克隆而不是new一个对象 定义 原型模式 ...

  8. 大话设计模式读书笔记10----外观模式(Facade)

    外观模式(Facade):为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更容易使用. 1.在设计初级阶段,应该要有意识的将不同的两个层分离. 2.层与层之间建 ...

  9. 大话设计模式读书笔记之桥接模式

    1.定义: 将抽象部分与它的实现部分分离,使它们都可以独立地变化. 需要理解,什么叫抽象与它的实现分离,并不是说,让抽象类与其派生类分离,因为这没任何意义.实现指的是抽象类和它的派生类用来实现自己的对 ...

最新文章

  1. 图灵奖得主Jeff Ullman直言:机器学习不是数据科学的全部!统计学也不是
  2. 成本中心和内部订单浅析
  3. oracle隐式转换函数,隐式数据类型转换案例一则
  4. idea传入HttpServletRequest时显示cannot resolve symbol的问题
  5. 为record类型自定义Equals方法
  6. LeetCode 1380. 矩阵中的幸运数(set)
  7. 微信公众号天气与聊天机器人小功能
  8. SQL-server 如何与 visual studio 建立连接
  9. 上下相机贴合对位计算公式_深圳贴合机生产家介绍;真空贴合机这些产品功能你了解多少...
  10. Perl 安装及模组安装方法【windows】
  11. 使用jquery-qrcode生成二维码
  12. 我的第一个Java程序和Java简介
  13. 使用fiddler4和夜神模拟器进行app抓包
  14. rost反剽窃检测系统_动静结合,最硬核反外挂
  15. 无法使用XXXX附加到应用程序解决办法
  16. 实数系的基本定理_11、实数的连续性(1)
  17. android模拟器开启vt,逍遥安卓模拟器怎样打开VT模式 VT虚拟化设置办法
  18. iOS开发之Moya网络请求使用与封装
  19. 大数据战略能不能打造第二个百度?
  20. 神经网络模型的训练过程,神经网络模型应用实例

热门文章

  1. SpringMVC实战(注解)
  2. 2016大数据发展7大趋势
  3. oneuijs/You-Dont-Need-jQuery
  4. 结合 category 工作原理分析 OC2.0 中的 runtime
  5. foreman架构的引入2-安装前环境准备
  6. HAproxy + Keepalive实现LDAP代理服务
  7. [AX]AX2012 AIF(二):文档服务编程模型
  8. 简单的for()循环使用方式foreach
  9. [CTO札记]盛大游戏上市,是对《文化产业振兴规划》的响应
  10. gentoo ffmpeg+mencoder快速搭建视频处理系统笔记