首先 公司在选用任何SDK的时候保证不了 不会因为某些因素更换,作为开发者我们需要更好的去设计代码, 以免公司再换SDK厂商的时候 我们的业务代码进行大规模的改动;
设计模式可能是重要的一环,它的出生就是为了代码更加灵活 解耦 让我们在应对复杂的需求时候可以更加灵活;
我们这里举一个场景: 公司需要做一个直播的项目,这里面的难点是在RTC或者RTMP封装上;但是这些东西SDK厂商已经给你做了; 你只需要如何调用;但是公司可能因为某些原因换了音视频SDK, 你要怎么办?
下面是我的方案:
iAvServce (接口类) 里面写了音视频直播的流程
Proxy(代理类) 上层业务只需要调用这个类实现功能 不需要关心是那个SDK
声网impl( 把声网的直播流程写在里面)
............
设计图如下
但是 实际业务并不是这样简单,此时我们可以用一些装饰者模式去丰富功能;
我们还可以统一状态回调等一系列操作 但是最终都是为了更好的解耦;