没有合适的资源?快使用搜索试试~ 我知道了~
一文读懂建造者模式,再也不怕面试官问我了
0 下载量 152 浏览量
2020-12-21
20:48:33
上传
评论
收藏 72KB PDF 举报
温馨提示
试读
7页
一、定义 将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。 二、使用范围 1.创建一个复杂的对象,他有多个不同的模块组成,其中有些模块不会改变,但是其他模块可能经常发生改变,我们不得已需要把不变的模块与常变的模块分开实现时。 2.当构造过程必须允许被构造的对象有不同表示时。 三、功能实现角色 1.builder:为创建一个产品对象的各个部件指定抽象接口。 2.ConcreteBuilder:实现Builder的接口以构造和装配该产品的各个部件,定义并明确它所创建的表示,并 提供一个检索产品的接口。 3.Director:构造一个使用Bui
资源详情
资源评论
资源推荐
一文读懂建造者模式,再也不怕面试官问我了一文读懂建造者模式,再也不怕面试官问我了
一、定义一、定义
将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。
二、使用范围二、使用范围
1.创建一个复杂的对象,他有多个不同的模块组成,其中有些模块不会改变,但是其他模块可能经常发生改变,我们不得已需
要把不变的模块与常变的模块分开实现时。
2.当构造过程必须允许被构造的对象有不同表示时。
三、功能实现角色三、功能实现角色
1.builder:为创建一个产品对象的各个部件指定抽象接口。
2.ConcreteBuilder:实现Builder的接口以构造和装配该产品的各个部件,定义并明确它所创建的表示,并 提供一个检索产品
的接口。
3.Director:构造一个使用Builder接口的对象。
4.Product:表示被构造的复杂对象。ConcreteBuilder创建该产品的内部表示并定义它的装配过程,包含定义组成部件的类,
包括将这些部件装配成最终产品的接口。
四、实践四、实践
1.情景假设情景假设
我们在计费的过程中有一个计费模式获取类,他的功能是获取当前这个用户所需要的计费模式,但是计费有很多种,比如
SMS计费(短信计费)、Cash计费(银行卡计费),其中SMS计费又包括中国移动、中国联通、印尼Tsel、印尼isat计
费,Cash包括招商银行、农行、印尼Visa等,且不同支付方式给予不同的计费点和订单开头。在国外用户和国内用户时,要
提供不同的计费集。
2.当前计费信息接口当前计费信息接口
public interface FeeInterf {
public String orderNo();//当前交易编号
public FeeTypeInterf feeType();//当前交易类型
public float price();//当前交易金额
}
3.当前计费类型接口当前计费类型接口
public interface FeeTypeInterf {
public String feeType();
}
4.当前计费类型的实现类当前计费类型的实现类
SMSFeeType
import cn.yzstu.buldermodule.interf.FeeTypeInterf;
/**
* 类描述
*
* @author: 12405
* @date: 2020/3/25-22:28
*/
public class SMSFeeType implements FeeTypeInterf {
@Override
public String feeType() {
return "SMS";
}
}
CashFeeType
weixin_38610012
- 粉丝: 2
- 资源: 866
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0