小王是一个普通公司职员实习生,收入平平却又爱攀比。

最近爱疯(iPhone)8又上市了,小王虚荣心泛滥,想搞一个肾8。

没钱怎么办呢?

小王上网了解到了一个贷款平台,小王很快在这个平台上贷到了8000块钱,

美滋滋的买了肾8,在朋友面前神气的很....

 

可是好景不长,还款日到了!!!

 

鉴于小王长时间不归还,贷款公司将收款业务委托给一家外包催收公司。

 

1.服务接口IService

服务接口没啥好说的,里面就是一个方法,要钱collect()。

贷款公司要钱,要不到交给催收公司,

催收公司接着要。

老赖也需要面对,各路人马要钱collect()时,在collect()方法种,说明自己的情况。

因此,贷款公司、催收公司、老赖都要继承这个接口。
/** * @author 博客园-刷书小将 * */ public interface IService { //催收 public void
collect(); }
 

2.贷款公司Company登场
public class Company implements IService { @Override public void collect() { //
TODO Auto-generated method stub System.out.println("贷款公司:面对老赖,我要将业务交给催收公司");
System.out.println("------------------------------------"); //定义催收公司
CollectCompany collectCompany =new CollectCompany(); //催收公司要钱
collectCompany.collect(); } }
其实贷款公司,就是委托人。

当有人逾期时,就将要钱的工作collect(),但是贷款公司软磨硬泡,老赖就是不还钱,贷款公司最终交给催收公司(代理)来处理。

 

3.催收公司CollectCompany登场
public class CollectCompany implements IService { private IService user; public
CollectCompany() {//催收公司(代理)找到催收对象.... this.user = new User();//
此处应该是已经确定好的对象,代理的对象是不能改变的,此处有别于装饰模式 } @Override public void collect() { //
TODO Auto-generated method stub System.out.println("催收公司员工:我收到了用户的反馈:");
user.collect();//了解老赖反馈 System.out.println(
"------------------------------------"); System.out.println(
"催收公司:先将消息传到给委托人贷款公司....."); System.out.println("催收公司:然后再给逾期用户下达最后通缉令");
System.out.println("------------------------------------"); //催收公司给逾期用户下通缉令...
System.out.println("我是xxx催收公司,"); System.out.println("受xxx贷款公司委托,");
System.out.println("请于今天xxx点前立刻还款,逾时我们将登门拜访"); } }
催收公司,也就是代理。

重要的一步,它要了解到老赖为何逾期。也就是代理对象user的collect()方法。

然后催收公司可以做其他的业务,例如

1,向委托人(贷款公司)报告老赖逾期的原因

2,恐吓老赖,继续催收要钱collect()。。

看到这里,这个催收公司,是不是就是一个,明显的代理?

 

4.老赖User登场
public class User implements IService { @Override public void collect() { //
TODO Auto-generated method stub System.out.println("我是用户,我没钱还款了"); } }
 

5.实现
public class Main { public static void main(String[] args) { // TODO
Auto-generated method stub//定义贷款公司,并要钱 Company company = new Company();
company.collect(); } }
 

运行截图如下:



 

6.与装饰模式比较

我之前,写了一篇博客:装饰模式 - 女屌丝逆袭白富美案例
<https://www.cnblogs.com/zh1996/p/10348516.html#4175693>

装饰模式看似与代理模式挺类似的,具体差异在哪呢?

在对象。

装饰模式,每装饰一次,就会产生一个新的不同的对象。

代理模式,是对某一指定对象,进行代理,而不会改变此对象,当然,也不会产生新的对象。

 

7.总结

代理模式,没什么好总结的。

倒是给尚未踏入社会的年轻人(虽然我也是年轻人....)一些忠告:我不反对网贷,但请认清自己的还款能力。

 

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信