引子
举个栗子,众所周知,我们是可以在京东上购买机票的。但机票是航司提供的,我们本质上是代理销售而已。
那为什么航司要让我们代理销售呢?
我们又是如帮他做代理的呢?
别急,本文将展开说说他们之间的关系。。。
一个有梦想的航司
从前有个航司打算开展线上销售机票业务,于是设计了如下系统。系统完成后,业务正常开展了。。。
航司销售机票的接口:
publicinterfaceSellAirTicket{/***销售机票*
paramprice*/voidsellAirTicket(intprice);}航司销售机票的接口实现类:
publicclassSellAirTicketImplimplementsSellAirTicket{
OverridepublicvoidsellAirTicket(intprice){System.out.println("航司销售机票,价格:"+price);}}测试:
publicclassMainClass{publicstaticvoidmain(String[]args){SellAirTicketsellAirTicket=newSellAirTicketImpl();sellAirTicket.sellAirTicket();}}
测试结果:
航司销售机票,价格:
业务蒸蒸日上,问题接踵而至
随着业务发展的越来越好,新的问题出现了。
*牛天天爬接口,系统风险出现了;卖完票没有统计结果,卖成啥样也不知道。
于是航司想增加售前风控、售后统计。加上这些功能后,业务又继续稳步发展了。。。
航司销售机票的接口:
publicinterfaceSellAirTicket{/***销售机票*
paramprice*/voidsellAirTicket(intprice);}航司销售机票的接口实现类:
publicclassSellAirTicketImplimplementsSellAirTicket{
OverridepublicvoidsellAirTicket(intprice){System.out.println("航司售前风控。。。");System.out.println("航司销售机票,价格:"+price);System.out.println("航司售后统计。。。");}}测试:
publicclassMainClass{publicstaticvoidmain(String[]args){SellAirTicketsellAirTicket=newSellAirTicketImpl();sellAirTicket.sellAirTicket();}}
测试结果:
航司售前风控。。。航司销售机票,价格:航司售后统计。。。
人员捉襟见肘,业务被迫拆分
后来航司发现,就这么点人,又想做风控,又想卖机票,又想做统计,根本忙不过来。
那怎么解决呢?航司只想专心卖票,不想做这些跟卖票无关的工作,那只能找个代理公司了。
于是,航司找到了JD代替自己做这些工作,自己就负责专心卖票。。。
航司销售机票的接口:
publicinterfaceSellAirTicket{/***销售机票*
paramprice*/voidsellAirTicket(intprice);}航司销售机票的接口实现类:
publicclassSellAirTicketImplimplementsSellAirTicket{
OverridepublicvoidsellAirTicket(intprice){System.out.println("航司销售机票,价格:"+price);}}JD平台代理航司销售机票实现类:
publicclassSellAirTicketProxyimplementsSellAirTicket{/***航司售票接口*/privateSellAirTicketsellAirTicket;
OverridepublicvoidsellAirTicket(intprice){System.out.println("JD售前风控。。。");sellAirTicket.sellAirTicket(price);System.out.println("JD售后统计。。。");}publicSellAirTicketProxy(SellAirTicketsellAirTicket){this.sellAirTicket=sellAirTicket;}}测试:
publicclassMainClass{publicstaticvoidmain(String[]args){SellAirTicketsellAirTicket=newSellAirTicketImpl();SellAirTicketsellAirTicketProxy=newSellAirTicketProxy(sellAirTicket);sellAirTicketProxy.sellAirTicket();}}
测试结果:
JD售前风控。。。航司销售机票,价格:JD售后统计。。。
朴素的一对一合作方式,静态代理
以上流程对与航司而言,由JD帮助自己