您好,欢迎访问一九零五行业门户网

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
在现实开发中,可能经常会省略director这个角色,直接使用builder来进行建造产品;
该产品的特点就是属性特别多,多数有默认值,通过一些基本的默认属性,就能构建出一个基本的产品;
而builder多使用链式调用,如product p = new builder().seta().setb().build();
以上就是java 实现建造者(builder)模式的代码示例的详细内容。
其它类似信息

推荐信息