首页 > 代码库 > Java 实现建造者(Builder)模式
Java 实现建造者(Builder)模式
建造者(Builder)模式是创建型模式,创建了一个对外隐藏创建过程的产品,使用组合的方式,由指挥者(Director)来决定建造的流程
public interface Builder { void buildPartA(); void buildPartB(); void buildPartC(); }
public class BuilderImpl implements Builder { @Override public void buildPartA() { System.out.println("建造部件A"); } @Override public void buildPartB() { System.out.println("建造部件B"); } @Override public void buildPartC() { System.out.println("建造部件C"); } }
public class BuilderImpl2 implements Builder { @Override public void buildPartA() { System.out.println("建造部件AA"); } @Override public void buildPartB() { System.out.println("建造部件BB"); } @Override public void buildPartC() { System.out.println("建造部件CC"); } }
/** * 指挥者:指导 如何 建造 * 组合Builder * @author stone * */ public class Director { private Builder builder; public Director(Builder builder) { this.builder = builder; } /** * 建造方法:定义了建造的流程 * 如果需要其他流程来实现,再new一个指挥者Director就可 */ public void construct() { System.out.println("director 指挥 builder进行建造"); builder.buildPartA(); builder.buildPartB(); builder.buildPartC(); } }
/** * 指挥者:指导 如何 建造 * 组合Builder * @author stone * */ public class Director2 { private Builder builder; public Director2(Builder builder) { this.builder = builder; } /** * 建造方法:定义了建造的流程 * 如果需要其他流程来实现,再new一个指挥者Director就可 */ public void construct() { System.out.println("director2 指挥 builder进行建造"); builder.buildPartB(); builder.buildPartC(); builder.buildPartA(); } }
/* * 建造者模式:建造者模式则是将各种产品集中起来进行管理,用来创建复合对象, * * 将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式 */ public class Test { public static void main(String[] args) { Builder builder = new BuilderImpl(); Director director = new Director(builder); /* * 同样的构建过程,不同的模块(buildPartA、buildPartB、buildPartC)实现, new一个builder的实现 * 不同的构建过程,new 一个director * 不同的构建过程,不同的模块实现, new director,new builder */ director.construct(); System.out.println(""); Builder builder2 = new BuilderImpl2(); Director director2 = new Director(builder2); director2.construct(); System.out.println(""); Builder builder3 = new BuilderImpl2(); Director2 director3 = new Director2(builder3); director3.construct(); } }
打印:
director 指挥 builder进行建造 建造部件A 建造部件B 建造部件C director 指挥 builder进行建造 建造部件AA 建造部件BB 建造部件CC director2 指挥 builder进行建造 建造部件BB 建造部件CC 建造部件AA
Java 实现建造者(Builder)模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。