《大话设计模式》读书笔记-建造者模式
// 建造者类
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
《大话设计模式》读书笔记-建造者模式相关推荐
- 大话设计模式读书笔记
主题 概要 设计模式 大话设计模式读书笔记 编辑 时间 新建 20170423 序号 参考资料 1 大话设计模式 重新看了一遍设计模式,除了一些已经特别熟悉的模式,都自己敲了一遍代码,有些豁然开朗的感 ...
- 大话设计模式读书笔记11----建造者模式(Builder)
建造者模式(Builder):将一个复杂对象的构建与它的表示分离,使得同样的建造过程可以创建不同的表示. 1.Builder是什么? 是创建一个Product对象的各个部件指定的抽象接口. 2.Con ...
- 设计模式之笔记--建造者模式(Builder)
建造者模式(Builder) 定义 建造者模式(Builder),将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 类图 描述 Builder:定义一个建造者抽象类,以规范产 ...
- 大话设计模式读书笔记之原型模式
由于大话这本书是以C#语言为基础写就的,本设计模式的例子中使用了一些c#中的API,因此就不再引用此书中的例子了,参考了一篇博客园中的大神写就的浅显易懂的JAVA版原型模式,在此奉上链接,以供大家学习 ...
- 大话设计模式读书笔记(十三) 状态模式
状态模式: 状态模式定义: 状态模式(State):当一个对象的内在状态改变时允许改变其行为,这个对象看起来像改变了其子类. 状态模式UMl类图: 状态模式Java代码实现 public class ...
- 大话设计模式读书笔记--4.代理模式
生活中的例子: 班主任让班长通知班委下午3点开会 班长就是班主任的代理 代理模式的目的是: 隐藏真实访问对象,同时可以处理别的事情 定义 代理模式:为其他对象提供一种代理以控制对这个对象的访问 也就是 ...
- 大话设计模式读书笔记--6.原型模式
简单的复制粘贴极有可能造成重复代码的灾难, 但是java中提供了克隆的功能, 如果一个对象创建过程复杂,又要频繁使用, 在初始化信息不发生变化的情况下,应当采取克隆而不是new一个对象 定义 原型模式 ...
- 大话设计模式读书笔记10----外观模式(Facade)
外观模式(Facade):为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更容易使用. 1.在设计初级阶段,应该要有意识的将不同的两个层分离. 2.层与层之间建 ...
- 大话设计模式读书笔记之桥接模式
1.定义: 将抽象部分与它的实现部分分离,使它们都可以独立地变化. 需要理解,什么叫抽象与它的实现分离,并不是说,让抽象类与其派生类分离,因为这没任何意义.实现指的是抽象类和它的派生类用来实现自己的对 ...
最新文章
- 图灵奖得主Jeff Ullman直言:机器学习不是数据科学的全部!统计学也不是
- 成本中心和内部订单浅析
- oracle隐式转换函数,隐式数据类型转换案例一则
- idea传入HttpServletRequest时显示cannot resolve symbol的问题
- 为record类型自定义Equals方法
- LeetCode 1380. 矩阵中的幸运数(set)
- 微信公众号天气与聊天机器人小功能
- SQL-server 如何与 visual studio 建立连接
- 上下相机贴合对位计算公式_深圳贴合机生产家介绍;真空贴合机这些产品功能你了解多少...
- Perl 安装及模组安装方法【windows】
- 使用jquery-qrcode生成二维码
- 我的第一个Java程序和Java简介
- 使用fiddler4和夜神模拟器进行app抓包
- rost反剽窃检测系统_动静结合,最硬核反外挂
- 无法使用XXXX附加到应用程序解决办法
- 实数系的基本定理_11、实数的连续性(1)
- android模拟器开启vt,逍遥安卓模拟器怎样打开VT模式 VT虚拟化设置办法
- iOS开发之Moya网络请求使用与封装
- 大数据战略能不能打造第二个百度?
- 神经网络模型的训练过程,神经网络模型应用实例
热门文章
- SpringMVC实战(注解)
- 2016大数据发展7大趋势
- oneuijs/You-Dont-Need-jQuery
- 结合 category 工作原理分析 OC2.0 中的 runtime
- foreman架构的引入2-安装前环境准备
- HAproxy + Keepalive实现LDAP代理服务
- [AX]AX2012 AIF(二):文档服务编程模型
- 简单的for()循环使用方式foreach
- [CTO札记]盛大游戏上市,是对《文化产业振兴规划》的响应
- gentoo ffmpeg+mencoder快速搭建视频处理系统笔记