建造者模式    建造者模式为客户端返回的不是一个简单的产品,而是一个由多个部件组成的复杂产品    角色        Builder抽象建造者            buildPartX            getResult        ConcreteBuilder具体建造者        Product产品角色        Director指挥者    复杂对象        指包含多个成员属性的对象,它们称为部件或零件        比如汽车,包含方向盘、发动机、轮胎等

1.角色类

package Builder;/*** Created by e550 on 2016/10/1.*/
public class Actor {private String type; // 角色private String sex;  // 性别private String face; // 脸型private String costume; // 服装private String hairstyle; // 发型public void setType(String type) {this.type = type;}public void setSex(String sex) {this.sex = sex;}public void setFace(String face) {this.face = face;}public void setCostume(String costume) {this.costume = costume;}public void setHairstyle(String hairstyle) {this.hairstyle = hairstyle;}public String getType() {return this.type;}public String getSex() {return this.sex;}public String getFace() {return this.face;}public String getCostume() {return this.costume;}public String getHairstyle() {return this.hairstyle;}}

2.角色构造抽象类

package Builder;/*** Created by jim on 2016/10/3.*/
abstract class ActorBuilder {protected Actor actor = new Actor();public abstract void buildType();public abstract void buildSex();public abstract void buildFace();public abstract void buildCostume();public abstract void buildHairstyle();public Actor createActor() {return actor;}
}

3.角色构造具体类,英雄角色

package Builder;/*** Created by e550 on 2016/10/3.*/
public class HeroBuilder extends ActorBuilder{public void buildType() {actor.setType("英雄");}public void buildSex() {actor.setSex("男");}public void buildFace() {actor.setFace("英俊");}public void buildCostume() {actor.setCostume("盔甲");}public void buildHairstyle() {actor.setHairstyle("飘逸");}
}

天使角色

package Builder;/*** Created by e550 on 2016/10/3.*/
public class AngelBuilder extends ActorBuilder{public void buildType() {actor.setType("天使");}public void buildSex() {actor.setSex("女");}public void buildFace() {actor.setFace("漂亮");}public void buildCostume() {actor.setCostume("白裙");}public void buildHairstyle() {actor.setHairstyle("披肩长发");}
}

恶魔角色

package Builder;/*** Created by e550 on 2016/10/3.*/
public class DevilBuilder extends ActorBuilder{public void buildType() {actor.setType("恶魔");}public void buildSex() {actor.setSex("妖");}public void buildFace() {actor.setFace("丑陋");}public void buildCostume() {actor.setCostume("黑衣");}public void buildHairstyle() {actor.setHairstyle("光头");}
}

4.角色控制器

package Builder;/*** Created by e550 on 2016/10/3.*/
public class ActorController {public Actor construct(ActorBuilder ab) {Actor actor;ab.buildType();ab.buildSex();ab.buildFace();ab.buildCostume();ab.buildHairstyle();actor = ab.createActor();return actor;}
}

5.客户端执行

package Builder;/*** Created by e550 on 2016/10/3.*/
public class Client {public static void main(String args[]) {ActorBuilder ab;ab = new AngelBuilder();ActorController ac = new ActorController();Actor actor;actor = ac.construct(ab);System.out.println("类型:" + actor.getType());System.out.println("性别:" + actor.getSex());System.out.println("面容:" + actor.getFace());System.out.println("服装:" + actor.getCostume());System.out.println("发型:" + actor.getHairstyle());}
}

执行结果
类型:天使
性别:女
面容:漂亮
服装:白裙
发型:披肩长发

本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/5929161.html,如需转载请自行联系原作者

JAVA设计模式之【建造者模式】相关推荐

  1. Java设计模式(建造者模式-适配器模式-桥接模式)

    Java设计模式Ⅲ 1.建造者模式 1.1 建造者模式概述 1.2 建造者模式的注意事项和细节 1.3 代码理解 2.适配器模式 2.1 类适配器模式 2.1.1 代码理解 2.2 对象适配器模式 2 ...

  2. 折腾Java设计模式之建造者模式

    博文原址:折腾Java设计模式之建造者模式 建造者模式 Separate the construction of a complex object from its representation, a ...

  3. java设计模式 建造模式_理解java设计模式之建造者模式

    理解java设计模式之建造者模式 发布于 2020-12-10| 复制链接 摘记: 建造者模式(Builder Pattern)主要用于"分步骤构建一个复杂的对象",在这其中&qu ...

  4. java设计模式之建造者模式(UML类图分析+代码详解)

    大家好,我是一名在算法之路上不断前进的小小程序猿!体会算法之美,领悟算法的智慧~ 希望各位博友走过路过可以给我点个免费的赞,你们的支持是我不断前进的动力!! 加油吧!未来可期!! 本文将介绍java设 ...

  5. JAVA设计模式之建造者模式

    转自 JAVA设计模式之建造者模式 建造者模式(Builder)的定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. Builder模式是一步一步创建一个复杂对象的创建型 ...

  6. 一文弄懂Java设计模式之建造者模式:图解+游戏角色生成实例

    文章目录 详解Java设计模式之建造者模式 案例引入建造者模式 建造者模式 定义 UML类图表示 模式结构 案例分析与代码实现 案例类图实现 代码结构 代码实现 结果分析 指挥者类的深入讨论 钩子方法 ...

  7. Java设计模式之建造者模式(精髓版)

    目录 1.建造者模式阐述 2.使用Java代码实现建造者模式 3.为什么需要使用建造者模式? 4.建造者模式与工厂方法模式有什么区别? 1.建造者模式阐述 Java 建造者模式是一种创建型设计模式,其 ...

  8. (设计模式四)java设计模式之建造者模式

    建造者模式,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 1.解决的问题 平常一般创建对象,需要new,然后通过set方法给每个属性设置,当创建多个对象的时候,代码重复性 ...

  9. 【Java设计模式】建造者模式(案例详解)

    [辰兮要努力]:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行! 博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端.后台.数据 ...

  10. 【Java设计模式】建造者模式、原型模式

    建造者模式 (1)需要建造很多零件 (2)需要装配起来 通常用于构建一些复杂的对象.可能需要和工厂模式互相搭配. • 场景: – 我们要建造一个复杂的产品.比如:神州飞船,Iphone.这个复杂的产品 ...

最新文章

  1. java string
  2. C语言的int, float,double相互转化 (从本质上理解可能的问题)
  3. No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
  4. cad幕墙下料lisp_石材幕墙屋面不锈钢角钢接闪带施工方法
  5. [蓝桥杯历届试题] 海盗比酒量
  6. 《Android开发案例驱动教程》
  7. Firefox 100% 支持 ECMAScript 2016
  8. python枚举函数_python dict函数枚举对象
  9. linux 网络对时
  10. 有些微信小程序助你提高生活效率!
  11. iphone计算机适配,iPhone UI界面尺寸如何一稿适配
  12. 深入理解以太坊 P2P 网络设计
  13. linux gt; gt;gt;区别,linux中amp;gt;什么意思? - 懂得
  14. 信用的“刚柔并进”大家信夫的普惠信用
  15. VB实现自动生成统计图表
  16. 数据挖掘:实用案例分析 下载_萌低龄,超实用“萌系”呈现技巧及设计案例分析...
  17. 爬虫练习(二)—股票信息抓取
  18. XEN的启动信息输出到“Platform timer is 14.318MHz HPET”就暂停接收的解决办法
  19. RS232RS485基本简介
  20. 【XR806开发板试用】TCP通信测试 Ping 命令测试

热门文章

  1. EasyX识别不到VC++6.0
  2. spring boot jpa级联保存
  3. Lock锁的基本使用
  4. python 开放_Python
  5. 个人博客系统的设计与实现_一个 Go 开发的快速、简洁、美观、前后端分离的个人博客系统...
  6. JavaScript创建或填充任意长度的数组
  7. java结构化语言,如何让Java代码流畅和结构化
  8. 实用VUE 开发插件!!前端必备
  9. 简述C语言的标准发展,简述C语言的发展历史
  10. java private 接口_java接口中 定义 private 私有方法