1.Adapter适配器模式
现实的问题:
现在有一个下载功能,以前是自己服务器实现的,如果写了一个downloadManger具体的实现了各种下载的功能,在各个VC里调用manger里的下载功能,一切完好,如果突然一天不用自己的服务器,要用第三方SDK的下载功能,那你又得开始写一个thirdDownloadManager来实现SDK里的各种接口调用,在各个VC中替换,如果更换SDK,继续改
解决方法:
我可以写一个类downloadPlugin专门用来处理下载功能,VC中调用它就够了,具体的实现放到单独的一个类downloadAdapter中,通过利用不同的adapter来自由切换
什么是适配器模式:
将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。
上面提到的Adapter怎么实现,可以定义一个Protocol 包括了下载的方方面面,如果开始,暂停,删除,查找等等方法和属性,同时定义一个抽象类基类实现这个Protocol,各个不同的Adapter继承这个基类 通过适配不同的接口来实现Protocol中相同的功能,此时在上面提到的downloadPlugin中简单切换不同的Adapter就能达到目的