23种设计模式之builder设计模式
2018-01-25 09:35
218 查看
举一个列子,手机有很多小零件组成,这里我假设手机只有手机壳,电池和屏幕三个部分组成
电池
屏幕
手机壳
获得所有零件
定义builder接口
定义一个director接口将手机装配起来
建造一个vivo手机所有需要的零件
将所有零件装配起来
测试
builder是将所有零件建造出来,director将所有东西装配起来
电池
//电池 public class Battery { String name; public Battery(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
屏幕
//屏幕 public class Screen { String name; public Screen(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
手机壳
//手机壳 public class MobileShell { String name; public MobileShell(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
获得所有零件
//获得手机零件 public class Mobile { Battery battery; MobileShell shell; Screen screen; public Battery getBattery() { return battery; } public void setBattery(Battery battery) { this.battery = battery; } public MobileShell getShell() { return shell; } public void setShell(MobileShell shell) { this.shell = shell; } public Screen getScreen() { return screen; } public void setScreen(Screen screen) { this.screen = screen; } }
定义builder接口
public interface MobileBuilder { Battery builderBattery(); MobileShell builderMobileShell(); Screen builderScreen(); }
定义一个director接口将手机装配起来
//把手机组装起来 public interface MobileDirector { Mobile directorMobile(); }
建造一个vivo手机所有需要的零件
public class VivoMobileBuilder implements MobileBuilder { @Override public bd60 Battery builderBattery() { return new Battery("vivo电池"); } @Override public MobileShell builderMobileShell() { return new MobileShell("vivo手机壳"); } @Override public Screen builderScreen() { return new Screen("vivo屏幕"); } }
将所有零件装配起来
public class VivoMobileDirector implements MobileDirector { VivoMobileBuilder builder; public VivoMobileDirector(VivoMobileBuilder builder) { this.builder = builder; } @Override public Mobile directorMobile() { Battery battery = builder.builderBattery(); MobileShell mobileShell = builder.builderMobileShell(); Screen screen = builder.builderScreen(); //组装起来 Mobile mobile = new Mobile() ; mobile.setBattery(battery); mobile.setScreen(screen); mobile.setShell(mobileShell); return mobile; } }
测试
VivoMobileDirector director = new VivoMobileDirector(new VivoMobileBuilder()); Mobile mobile = director.directorMobile(); Screen screen = mobile.getScreen(); System.out.println( screen.getName()+mobile.getBattery().getName()+mobile.getShell().getName());
builder是将所有零件建造出来,director将所有东西装配起来
相关文章推荐
- 【Unity3D与23种设计模式】建造者模式(Builder)
- 【创建型模式】建造者模式(Builder)之23种java设计模式
- 23种设计模式(4)--builder模式
- 23种设计模式之四(创建型模式)Builder模式
- 23种设计模式-Builder建造者模式
- 23种设计模式之Builder模式
- 23种设计模式之-----建造者模式(Builder Pattern)
- 23种设计模式之建造者模式(Builder)
- 23种设计模式之python实现--builder模式
- java 23种设计模式--建造者模式(builder)
- 23种设计模式之建造者模式(创建型,4 Builder,c++实现)
- java23种常用设计模式之建造者模式(Builder)
- Java23种设计模式案例:建造者模式(builder)
- 23种设计模式之建造者模式(Builder)
- 23种设计模式——Builder模式
- java23种设计模式之建造者模式(Builder)
- 23种设计模式(Builder模式)
- java23种设计模式之建造者模式(Builder)
- java23种常用设计模式之建造者模式(Builder)升级版实例
- 23种设计模式-3.建造者模式(Builder)