建造者模式
建造者模式适用于需要生成的产品对象有复杂的内部结构。
(图片来源网络,侵删)
1 //产品
2 public class AirShip {
3 private Engine engine; //发动机
4 private Cabin cabin; //机舱
5 private Excape excape; //逃生舱
6 public Engine getEngine() {
7 return engine;
8 }
9 public void setEngine(Engine engine) {
10 this.engine = engine;
11 }
12 public Cabin getCabin() {
13 return cabin;
14 }
15 public void setCabin(Cabin cabin) {
16 this.cabin = cabin;
17 }
18 public Excape getExcape() {
19 return excape;
20 }
21 public void setExcape(Excape excape) {
22 this.excape = excape;
23 }
24 }
25 class Engine{
26 String name;
27 }
28 class Cabin{
29 String name;
30 }
31 class Excape{
32 String name;
33 }
1 //产品建造
2 public interface AirShipBuilder {
3 Engine createEngine();
4 Cabin createCabin();
5 Excape createExcape();
6 }
1 //指挥者
2 public interface Director {
3 AirShip createAirship();
4 }
1 //具体的指挥者
2 public class SxtDirector implements Director{
3 AirShipBuilder builder;
4 //根据不同的建造者
5 public SxtDirector(AirShipBuilder builder) {
6 this.builder = builder;
7 }
8 //相同的安装顺序
9 @Override
10 public AirShip createAirship() {
11 AirShip ship = new AirShip();
12 ship.setCabin(builder.createCabin());
13 ship.setEngine(builder.createEngine());
14 ship.setExcape(builder.createExcape());
15 return ship;
16 }
17 }
//具体的建造者
public class SxtAirShipBuilder implements AirShipBuilder{
@Override
public Engine createEngine() {
System.out.println("engine is building");
return new Engine();
}
@Override
public Cabin createCabin() {
System.out.println("cabin is building");
return new Cabin();
}
@Override
public Excape createExcape() {
System.out.println("excape is building");
return new Excape();
}
}
1 //用户只需要与指挥者和建造者打交道就可以得到结构复杂的产品
2 public class BuilderDemo {
3 public static void main(String[] args) {
4 AirShipBuilder bu = new SxtAirShipBuilder();
5 AirShip ship = new SxtDirector(bu).createAirship();
6 }
7 }
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!
