移动架构11_建造者模式
/**
* 建造者角色
* 工人接口,定义了各个工人所需要进行的工作
* 并不负责具体的建造
*
* 同时房子是具体的(农民工)建造的 所以需要有返回房子的方法
* @author tucheng
*
*/
public interface Build {
public void makeWindow();public void makeFloor();public Room getRoom();}
public class WorkBuilder implements Build{private Room room=new Room();@Overridepublic void makeWindow() {room.setFloor("地板 ");}@Overridepublic void makeFloor() {room.setWindow("窗户");}@Overridepublic Room getRoom() {return room;}}
public class Designer {public void order(Build build)
{build.makeFloor();build.makeWindow();
}}
public class Room {private String window;private String floor;public String getWindow() {return window;
}public void setWindow(String window) {this.window = window;
}public String getFloor() {return floor;
}public void setFloor(String floor) {this.floor = floor;
}@Override
public String toString() {// TODO Auto-generated method stubreturn "---->floor "+floor+" window "+window;
}}
public static void main(String[] args){Build worker = new WorkBuilder();Designer designer = new Designer();designer.order(worker);System.out.print(">>> "+worker.getRoom());
}
public class WorkBuilder {private RoomParams params;public WorkBuilder(){params = new RoomParams();
}public WorkBuilder makeWindow(String window){params.window = window;return this;
}public WorkBuilder makeDoor(String door){params.door = door;return this;
}public WorkBuilder makeChat(String chat){params.chat = chat;return this;
}public WorkBuilder makeFloor(String floor){params.floor = floor;return this;
}public Room build(){Room room = new Room();room.apply(params);return room;
}class RoomParams{public String window;public String floor;public String door;public String chat;
}
}
public class Room {private String window;private String floor;private String door;private String chat;public void apply(WorkBuilder.RoomParams params){window = params.window;floor = params.floor;door = params.door;chat = params.chat;
}}
WorkBuilder builder = new WorkBuilder();
Room room = builder.makeChat("椅子")
.makeDoor("门")
.makeFloor("地板")
.makeWindow("窗户")
.build();
![](/assets/blank.gif)
移动架构11_建造者模式相关推荐
- php设计模式 - 建造者模式
为什么80%的码农都做不了架构师?>>> <?php /*** 建造者模式* * 将一个复杂对象的构建与它的表示分离,使用同样的构建过程可以创建不同的表示 */ clas ...
- 说说设计模式~建造者模式(Builder)
建造者模式是我的"设计模式"里创建型模式里的最后一篇,这种模式在实现中,很多架构都用到了,如MVC,MVP,MVVM,它们都是有建造者模式的精髓的,即,创建与表现分享,我们的MVC ...
- 深入理解建造者模式 ——组装复杂的实例
历史文章回顾: 设计模式专栏 深入理解单例模式 深入理解工厂模式 历史优质文章推荐: 分布式系统的经典基础理论 可能是最漂亮的Spring事务管理详解 面试中关于Java虚拟机(jvm)的问题看这篇就 ...
- Java设计模式之创建型:建造者模式
一.什么是建造者模式: 建造者模式将复杂产品的创建步骤分解在在不同的方法中,使得创建过程更加清晰,从而更精确控制复杂对象的产生过程:通过隔离复杂对象的构建与使用,也就是将产品的创建与产品本身分离开来, ...
- Java描述设计模式(06):建造者模式
一.生活场景 基于建造者模式,描述软件开发的流程. 1.代码实现 /*** 基于建造者模式描述软件开发*/ public class C01_InScene {public static void m ...
- 常用设计模式系列(四)—建造者模式
第一节 前言 "山不在高,有仙则名.水不在深,有龙则灵.斯是陋室,惟吾德馨.苔痕上阶绿,草色入帘青.谈笑有鸿儒,往来无白丁.可以调素琴,阅金经.无丝竹之乱耳,无案牍之劳形.南阳诸葛庐,西蜀子 ...
- 【设计模式】建造者模式
博主声明: 转载请在开头附加本文链接及作者信息,并标记为转载.本文由博主 威威喵 原创,请多支持与指教. 本文首发于此 博主:威威喵 | 博客主页:https://blog.csdn.net/ ...
- 23种设计模式之单例模式、工厂模式、原型模式、建造者模式
系列文章目录 第一章:程序设计原则-单一职责.接口隔离.依赖倒置.里式替换 第二章:程序设计原则-开闭原则.迪米特法则.合成复用原则 文章目录 系列文章目录 一.设计模式简单介绍 1.1.什么是设计模 ...
- Myabtis源码分析五-Mybatis配置加载完全图解,建造者模式的使用,涵盖Java各种技术栈
private SqlSessionFactory sqlSessionFactory; @Before public void init() throws IOException { //----- ...
最新文章
- PostgreSQL在win7上安装详细步骤
- 【jenkins】jenkins按分支build和email
- python+OpenCV图像处理(十一)图像轮廓检测
- 360团队 临时目录的原始文件不是360合法文件_谈谈腾讯电脑管家小团队版
- 为iOS Vision盒子架构建Core ML管道(五)
- 普通程序员,如何转型大数据相关方向?
- 熊猫删除重复行– drop_duplicates()函数
- C++自定义函数类型——typedef的使用
- 红帽linux系统解压,linux redhat 红帽 centos 压缩 解压缩
- 关于代码运行速度与cpu关系的一点小事
- 相机标定:从世界坐标系到图像像素坐标系转换过程解析
- Unity XLua学习笔记(四):Hotfix热补丁
- 爬mei紫图最后代码2015-2019-1-14全部
- 邮件退回 对方服务器不允许,主 题:我给别人发的邮件被退回来了如何处理?...
- Qt QSqlQueryModel详解
- BurpSuite 基本使用之暴力破解
- C语言—指针数组与数组指针
- 10. 从0学ARM-基于Exynos4412的pwm详解
- Tableau表计算(2):计算依据
- html5页面上下分栏,HTML5+CSS3 分栏效果
热门文章
- 使用fastText实现文本分类-java版
- 基于J2EE的B2C电子商务系统开发与实现
- vue 移动端歌词实时滚动及优化
- 【Python】pyecharts 数据可视化模块
- pandas将df赋值到另一个df_Python/Pandas:如果匹配的話,將一個df的值添加到另一個df的行的末尾...
- R 散点图,添加标签
- 计算机毕业设计 SSM学校图书借阅管理系统 图书馆借阅管理系统 图书借阅系统Java
- python 爬虫-养生之道
- fastnest怎么一键排版_我的妈呀!一键排版也太好用了吧!3秒钟搞定排版!
- 响铃:社交型流量平台,为何线上平台都扎堆去线下造节