`
hello_player
  • 浏览: 152523 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

java builder 模式之贷款办理

    博客分类:
  • Java
阅读更多

        Builder模式定义:
    将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示.
  
    为何使用?
    是为了将构建复杂对象的过程和它的部件解耦.注意: 是解耦过程和部件.

 

        为了简单说明,下面用办理贷款模拟 builder 模式的实现

 

        先说下思路,一民工在买房的时候没钱要办理贷款,房产交易大厅下面很多银行的代办点,于是跑过去打听,接待他的是个漂亮小MM,一听说是打听贷款办理,喜上眉梢,心想又一笨蛋房奴上钩了,便热情地跟你介绍他们的办理手续,手续简单,只要提供相应的材料到前台,办理完申请以后就可以回去等消息了,太热情了,民工激动得内牛满面,决定办了,提供了相应的材料到前台办了个贷款申请手续,完了被告知回去等电话通知就可以了,过了三四个月终于接到电话通知,让带上证件去银行某某部门领取抵押贷款合同书和银行卡,于是民工终于成为了一个真正的房奴了。。。


        在整个贷款办理过程中所有的过程都是在银行里面办理的,完全是由代办点帮你去相应的部门办理过了,如果不经过代办点的话那么民工就要自己去这些部门逐个办理一次,对于本来就天天加班累死了的民工来说经常请假往银行跑是件很头疼的事情,有了代办点,因为他们是批量办理,轻车熟路,要方便得多,办理好了当然还是要民工本人去银行签字领房屋抵押合同和银行卡。


        这个例子当中代办点封装了贷款申请办理的复杂的流程,因为实际流程可能会很多,民工不需要知道中间的申请过程,只要去填个表就可以等着通知去银行领合同了。

 

不废话了,上代码

 

package patterns.builder.sample3;

// 贷款办理接口
public interface ICredit {
	
	// 资料审核
	void step_1();
	
	// 贷款审批
	void step_2();
	
	// 财务盖章
	void step_3();
	
	// 领取贷款合同
	Contract getContract(String name);
}

 


贷款办理的具体流程实现

package patterns.builder.sample3;

public class Credit implements ICredit {

	public Contract getContract(String name) {
		System.out.println("贷款办理完成, 个人凭身份证去银行相关部门领取抵押贷款合同和银行卡\n恭喜,又一房奴产生");
		return new Contract(name);
	}

	public void step_1() {
		System.out.println("找相关部门审查贷款材料是否符合申请条件");
	}

	public void step_2() {
		System.out.println("找相关部门审批贷款");
	}

	public void step_3() {
		System.out.println("财务盖章,贷款审批通过");
	}

}

 

 


银行代办点MM

package patterns.builder.sample3;

public class Staff {
	
	private ICredit credit;
	
	public Staff(ICredit credit) {
		this.credit = credit;
	}
	
	// 贷款办理
	public void creditHandler() {
		System.out.println("********代办点工作开始********");
		credit.step_1();
		credit.step_2();
		credit.step_3();
		System.out.println("********代办点工作结束********");
	}
}

 

 


房奴的商标

package patterns.builder.sample3;

// 贷款抵押合同
public class Contract {
	
	private String name;
	
	public Contract(String name) {
		this.name = name;
	}
}

 


最后民工上钩

package patterns.builder.sample3;

public class Customer {
	
	public static void main(String[] args) {
		ICredit credit = new Credit();
		Staff staff = new Staff(credit);
		staff.creditHandler();
		Contract contract = credit.getContract("民工");
	}
}

 

 

最后结果

********代办点工作开始********
找相关部门审查贷款材料是否符合申请条件
找相关部门审批贷款
财务盖章,贷款审批通过
********代办点工作结束********
贷款办理完成, 个人凭身份证去银行相关部门领取抵押贷款合同和银行卡
恭喜,又一房奴产生

 

 


感觉这样应该清楚了吧,欢迎拍砖 

1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics