JAVA设计模式之【建造者模式】
建造者模式 建造者模式为客户端返回的不是一个简单的产品,而是一个由多个部件组成的复杂产品 角色 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设计模式之【建造者模式】相关推荐
- Java设计模式(建造者模式-适配器模式-桥接模式)
Java设计模式Ⅲ 1.建造者模式 1.1 建造者模式概述 1.2 建造者模式的注意事项和细节 1.3 代码理解 2.适配器模式 2.1 类适配器模式 2.1.1 代码理解 2.2 对象适配器模式 2 ...
- 折腾Java设计模式之建造者模式
博文原址:折腾Java设计模式之建造者模式 建造者模式 Separate the construction of a complex object from its representation, a ...
- java设计模式 建造模式_理解java设计模式之建造者模式
理解java设计模式之建造者模式 发布于 2020-12-10| 复制链接 摘记: 建造者模式(Builder Pattern)主要用于"分步骤构建一个复杂的对象",在这其中&qu ...
- java设计模式之建造者模式(UML类图分析+代码详解)
大家好,我是一名在算法之路上不断前进的小小程序猿!体会算法之美,领悟算法的智慧~ 希望各位博友走过路过可以给我点个免费的赞,你们的支持是我不断前进的动力!! 加油吧!未来可期!! 本文将介绍java设 ...
- JAVA设计模式之建造者模式
转自 JAVA设计模式之建造者模式 建造者模式(Builder)的定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. Builder模式是一步一步创建一个复杂对象的创建型 ...
- 一文弄懂Java设计模式之建造者模式:图解+游戏角色生成实例
文章目录 详解Java设计模式之建造者模式 案例引入建造者模式 建造者模式 定义 UML类图表示 模式结构 案例分析与代码实现 案例类图实现 代码结构 代码实现 结果分析 指挥者类的深入讨论 钩子方法 ...
- Java设计模式之建造者模式(精髓版)
目录 1.建造者模式阐述 2.使用Java代码实现建造者模式 3.为什么需要使用建造者模式? 4.建造者模式与工厂方法模式有什么区别? 1.建造者模式阐述 Java 建造者模式是一种创建型设计模式,其 ...
- (设计模式四)java设计模式之建造者模式
建造者模式,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 1.解决的问题 平常一般创建对象,需要new,然后通过set方法给每个属性设置,当创建多个对象的时候,代码重复性 ...
- 【Java设计模式】建造者模式(案例详解)
[辰兮要努力]:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行! 博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端.后台.数据 ...
- 【Java设计模式】建造者模式、原型模式
建造者模式 (1)需要建造很多零件 (2)需要装配起来 通常用于构建一些复杂的对象.可能需要和工厂模式互相搭配. • 场景: – 我们要建造一个复杂的产品.比如:神州飞船,Iphone.这个复杂的产品 ...
最新文章
- java string
- C语言的int, float,double相互转化 (从本质上理解可能的问题)
- No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
- cad幕墙下料lisp_石材幕墙屋面不锈钢角钢接闪带施工方法
- [蓝桥杯历届试题] 海盗比酒量
- 《Android开发案例驱动教程》
- Firefox 100% 支持 ECMAScript 2016
- python枚举函数_python dict函数枚举对象
- linux 网络对时
- 有些微信小程序助你提高生活效率!
- iphone计算机适配,iPhone UI界面尺寸如何一稿适配
- 深入理解以太坊 P2P 网络设计
- linux gt; gt;gt;区别,linux中amp;gt;什么意思? - 懂得
- 信用的“刚柔并进”大家信夫的普惠信用
- VB实现自动生成统计图表
- 数据挖掘:实用案例分析 下载_萌低龄,超实用“萌系”呈现技巧及设计案例分析...
- 爬虫练习(二)—股票信息抓取
- XEN的启动信息输出到“Platform timer is 14.318MHz HPET”就暂停接收的解决办法
- RS232RS485基本简介
- 【XR806开发板试用】TCP通信测试 Ping 命令测试
热门文章
- EasyX识别不到VC++6.0
- spring boot jpa级联保存
- Lock锁的基本使用
- python 开放_Python
- 个人博客系统的设计与实现_一个 Go 开发的快速、简洁、美观、前后端分离的个人博客系统...
- JavaScript创建或填充任意长度的数组
- java结构化语言,如何让Java代码流畅和结构化
- 实用VUE 开发插件!!前端必备
- 简述C语言的标准发展,简述C语言的发展历史
- java private 接口_java接口中 定义 private 私有方法