菜鸟硕枫设计模式系列之6 建造者模式
发布日期:2021-10-01 08:45:06 浏览次数:2 分类:技术文章

本文共 2246 字,大约阅读时间需要 7 分钟。

建造者模式是设计模式中另一个重要的创建对象的方法模式。它的特点主要是稳定了创建的过程,比如下面的例子中就是每个产品的创建过程都包括创建A部分和创建B部分,但不同的builder可以有自己的方式去创建产品,比如不同的房地产商可以建不同的房子【大房子、小房子】,只要建造过程稳定一致就可以了。
建造者模式类图:
[img]http://dl.iteye.com/upload/attachment/364530/f8ab4e69-9028-3e38-9741-bf9cf2a1622e.jpg[/img]
建造者接口:
package builderPattern; public interface Builder {
Product getProduct(); Object buildProductPartA(); Object buildProductPartB(); }
具体建造者:
public class ConcreteBuilder1 implements Builder{
public Object buildProductPartA() {
System.out.println("build Big ProductPartA with tools ."); Object object = new Object(); return object; } public Object buildProductPartB() {
System.out.println("build Big ProductPartB with tools ."); Object object = new Object(); return object; } public Product getProduct() {
// TODO Auto-generated method stub return new Product(buildProductPartA(),buildProductPartB()); } }
package builderPattern; public class ConcreteBuilder2 implements Builder{
public Object buildProductPartA() {
System.out.println("build Small ProductPartA with tools ."); Object object = new Object(); return object; } public Object buildProductPartB() {
System.out.println("build Small ProductPartB with tools ."); Object object = new Object(); return object; } public Product getProduct() {
// TODO Auto-generated method stub return new Product(buildProductPartA(),buildProductPartB()); } }
具体产品:
package builderPattern; public class Product {
private Object partA; private Object partB; public Product(Object partA,Object partB){
this.partA = partA; this.partB = partB; } }
指挥者:
package builderPattern; public class Director {
private Builder builder; public Director(Builder builder){
this.builder = builder; } public Product getProduct(){
return builder.getProduct(); } }
测试类:
package builderPattern; public class BuilderTest {
public static void main(String[] args){
Builder builder = new ConcreteBuilder1(); Director director = new Director(builder); director.getProduct(); System.out.println("建造另外一件产品"); director = new Director(builder); Builder builder2 = new ConcreteBuilder2(); director.getProduct(); } }
说明:说明:产品这块当然也可以通过抽象出一个抽象类或接口了,只要这一类产品创建过程一样,都可以通过建造者模式去创建。

转载地址:https://blog.csdn.net/iteye_2655/article/details/81970361 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:菜鸟硕枫设计模式系列之7 适配器模式
下一篇:菜鸟硕枫设计模式系列之5 原型模式

发表评论

最新留言

很好
[***.229.124.182]2024年03月28日 05时25分58秒