打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
建造者模式学习以及与工厂模式的区别
一、建造者模式是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
二、建造者模式与工厂模式的区别:
工厂模式一般都是创建一个产品,注重的是把这个产品创建出来就行,只要创建出来,不关心这个          产品的组成部分。从代码上看,工厂模式就是一个方法,用这个方法就能生产出产品。
建造者模式也是创建一个产品,但是不仅要把这个产品创建出来,还要关系这个产品的组成细节,          组成过程。从代码上看,建造者模式在建造产品时,这个产品有很多方法,建造者模式会根据这些相同          方法但是不同执行顺序建造出不同组成细节的产品。
可以比较两个模式的example代码,一比较就会比较出来,工厂模式关心整体,建造者模式关心细节。
三、建造者模式代码
1、建造者模式用于建造产品,其产品类一般都是一个模板(模板设计模式),所以一定会有产品类:
Java代码
package com.wang.builderPattern;
/**
* 产品类,通常实现了模板方法设计模式
* @author HeJW
*
*/
public class Product {
//独立业务处理,一般会有多个业务方法,
//根据这些方法不同实现细节,
//体现出建造者模式的用处
public void doSomething(){
System.out.println("");
}
}
2、抽象建造者,这个建造者会定义产品的不同部分以及其他产品定义的细节问题,然后根据这些细节建造产品:
Java代码
package com.wang.builderPattern;
/**
* 抽象建造者
* @author HeJW
*
*/
public abstract class Builder {
//设置产品的不同部分,以获得不同产品
public abstract void setPart();
//建造产品
public abstract Product builderProduct();
}
3、具体的建造者,在具体的建造者中,一定会有一个产品的对象,通过对这个产品对象的组成部分定义,建造出具体不同细节的产品:
Java代码
package com.wang.builderPattern;
/**
* 具体建造者
* @author HeJW
*
*/
public class ConcerteProduct extends Builder {
private Product product = new Product();
//设置产品零件
@Override
public void setPart() {
/**
* 产品类内的逻辑处理
*/
}
@Override
public Product builderProduct() {
return product;
}
}
4、导演类,这个类就是建造出可能出现的、具有不同细节的产品的建造者的集合,只要在客户端有导演类的实例,并且告诉导演类我要什么样的产品,导演类就会返回这个产品:
Java代码
package com.wang.builderPattern;
/**
* 导演类
* @author HeJW
*
*/
public class Director {
private Builder builder = new ConcerteProduct();
//构造不同的产品
public Product getProduct(){
/*
* 设置不同的零件,产生不同的产品
*/
builder.setPart();
return builder.builderProduct();
}
}
在客户端建造产品时:
Java代码
package com.wang.builderPattern;
public class App {
public static void main(String[] args) {
Director productDirector = new Director();
Product p = productDirector.getProduct();
//...
}
}
最后,只要记住,建造者模式是 适合建造具体细节的产品的设计模式就可以了。。。。。。
附上设计模式之禅这本书的建造者模式的实例代码(是以建造car为例的)
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
设计模式-建造者模式详解
C#设计模式系列:建造者模式(Builder)
C#设计模式(5)——建造者模式(Builder Pattern)
设计模式(4) 建造者模式
​PHP设计模式之建造者模式
大话设计模式笔记(十)の建造者模式
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服