(5)设计模式之建造者模式(创建型模式)
来源:互联网 发布:淘宝迅雷会员卡密 编辑:程序博客网 时间:2024/06/06 19:23
声明:以下都是博主浅薄的经验之谈,欢迎大家学习交流
- 博主是参考这个视频进行学习总结的,如阅读不懂可参看本视频哦!
- 设计模式学习视频(点击我)
- 提取码 : ivtk
- 先看类图
- 客户端代码
- Main.java
public class Main { public static void main(String[] args) { /**引入建造者模式的场景**/ /**1.客户端创建房子最普通方式是如下,如果每次要创建不同的房子的话,就必须类似这样进行创建*/ /**缺点:客户端的代码要不断的动,不利于维护**/ House house = new House(); house.setFloor("普通地板"); house.setWall("普通墙"); house.setRoof("普通房顶"); House h1 = new House(); h1.setFloor("中等地板"); h1.setWall("中等墙"); h1.setRoof("中等房顶"); /**2.增加了一个建造房子的工程队**/ /**缺点:**/ HouseBuilder commonBuilder = new CommonBuilder(); commonBuilder.makeFloor(); commonBuilder.makeRoof(); commonBuilder.makeWall(); House h2 = commonBuilder.getHouse(); System.out.println(h2); /**3.增加一个管理者(指导工程队进行设计)【引入建造者模式】**/ /**对于后期如果要创建一个中等房子的话,只需要实现houseBuilder接口,创建出一个 MediumBuilderm,交给designer即可**/ /**分离了在客户端代码中去创建不同类别的House对象,代码数量动得少了**/ Designer designer = new Designer(); HouseBuilder builder = new CommonBuilder(); designer.designHouse(builder); House h3 = builder.getHouse(); System.out.println(h3); /// HouseBuilder mediumBuilder = new MediumBuiler(); designer.designHouse(mediumBuilder); House h4 = mediumBuilder.getHouse(); System.out.println(h4); }}
- House.java
public class House { private String floor; private String wall; private String roof; public String getFloor() { return floor; } public void setFloor(String floor) { this.floor = floor; } public String getWall() { return wall; } public void setWall(String wall) { this.wall = wall; } public String getRoof() { return roof; } public void setRoof(String roof) { this.roof = roof; } @Override public String toString() { return "House [floor=" + floor + ", wall=" + wall + ", roof=" + roof + "]"; }}
- HouseBuilder.java
public interface HouseBuilder { public void makeFloor(); public void makeRoof(); public void makeWall(); public House getHouse();}
- CommonBuilder.java
public class CommonBuilder implements HouseBuilder{ private House house = new House(); @Override public void makeFloor() { house.setFloor("普通地板"); } @Override public void makeRoof() { house.setRoof("普通房顶"); } @Override public void makeWall() { house.setWall("普通墙壁"); } /** * 得到房子 * @return */ public House getHouse(){ return house; }}
- MediumBuiler.java
public class MediumBuiler implements HouseBuilder { private House house = new House(); @Override public void makeFloor() { house.setFloor("中等地板"); } @Override public void makeRoof() { house.setRoof("中等房顶"); } @Override public void makeWall() { house.setWall("中等墙"); } @Override public House getHouse() { return house; }}
- Designer.java
/** * 描述:设计者里管理工程队来进行建造房子 */public class Designer {public void designHouse(HouseBuilder houseBuilder){ houseBuilder.makeFloor(); houseBuilder.makeRoof(); houseBuilder.makeWall();}}
声明:以上都是博主浅薄的经验之谈,欢迎大家学习交流
- 博主是参考这个视频进行学习总结的:
- 设计模式学习视频(点击我)
- 提取码 : ivtk
阅读全文
0 0
- 设计模式之创建型模式---建造者模式
- Java设计模式之创建型模式--建造者模式
- (5)设计模式之建造者模式(创建型模式)
- 创建型设计模式(5):建造者模式
- 设计模式 创建模式之建造模式
- 设计模式之建造型-建造者模式(4)
- 创建型设计模式-建造者模式
- 设计模式(创建型)之建造者模式(Builder Pattern)
- 设计模式-创建型之建造者模式
- Python的创建型设计模式之建造者模式
- 建造者模式——设计模式之创建型
- 创建型:设计模式之建造模式(四)
- 创建型模式之建造者模式(生成器模式)
- 设计模式5——创建型模式之建造者模式
- 设计模式学习之建造者模式(Builder,创建型模式)(6)
- 设计模式之------创建型模式(四)-----建造者模式(Builder)
- 【创建型模式】建造者模式(Builder)之23种java设计模式
- Java设计模式之创建型模式-建造者模式(Builder)
- 富文本解析器使用心得
- 摄像头驱动(三)————V4L2 编写虚拟摄像头驱动
- Java多线程-----互斥与同步
- UML学习(一)-----用例图
- curl命令
- (5)设计模式之建造者模式(创建型模式)
- SharePoint 用递归实现组织结构 C#
- require()
- Windows7,程序兼容助手:这个程序可能安装不正确
- 第九周作业2(LeetCode4)
- 让技能成为潜意识之Redis技能 Redis监控 info信息
- 两大信息安全公司:WannaCry勒索病毒或与朝鲜有关
- java 性能优化:35 个小细节,让你提升 java 代码的运行效率
- Tensorflow运作方式-综述