小王是一個普通公司職員實習生,收入平平卻又愛攀比。
最近愛瘋(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.總結
代理模式,沒什麼好總結的。
倒是給尚未踏入社會的年輕人(雖然我也是年輕人....)一些忠告:我不反對網貸,但請認清自己的還款能力。