RT,LZ做的是个B2B电商的银行对接功能,资金是通过银行做资金监管。
这个平台会对接多个银行。所以LZ一开始是这样设计的:
一开始LZ以为这些银行的行为都是一样的,就用的策略者模式设计的:
PaymentContext类:环境类,根据spring注入不同的银行对象来调用方法
IPaymentEvent接口:银行的各个行为
接下来就是实现IPaymentEvent接口的银行实现类了
然后发现,银行大致的行为都是相同的,但是某个银行会多出一两个必要的东西
这时候LZ就另外定义一个专属的XX银行接口来继承IPaymentEvent接口,然后那个银行的实现类就是实现这个专属的银行接口而不是和别的银行一样去实现IPaymentEvent接口。然后就是在PaymentContext中做点处理了,直接强制转换来调用专属的银行接口的方法。不知道这样子的设计合不合理。。。希望大家能够提供一些意见来帮助我这个新人菜鸟