Error message here!

Hide Error message here!

忘记密码?

Error message here!

请输入正确邮箱

Hide Error message here!

密码丢失?请输入您的电子邮件地址。您将收到一个重设密码链接。

Error message here!

返回登录

Close

代理模式 - 老赖大战催收案例

刷书小将 2019-02-07 12:47:00 阅读数:180 评论数:0 点赞数:0 收藏数:0

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

最近爱疯(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.与装饰模式比较

我之前,写了一篇博客:装饰模式 - 女屌丝逆袭白富美案例

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

在对象。

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

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

 

7.总结

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

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

 

版权声明
本文为[刷书小将]所创,转载请带上原文链接,感谢
https://www.cnblogs.com/zh1996/p/10354680.html

编程之旅,人生之路,不止于编程,还有诗和远方。
阅代码原理,看框架知识,学企业实践;
赏诗词,读日记,踏人生之路,观世界之行;