Android
三方SDK组件化时需要针对三方SDK提供的接口定义一个interface
(比如框架推送协议AbstractPushManager
),interface
中必选方法为三方SDK必需的基础方法。同时新建一个SDK管理类(比如框架推送管理类HLPushManager
),SDK管理类持有一个static
类型实例,且实现interface
中定义的方法,SDK管理类提供的方法的内部实现通过调用该static
实例来调用到三方SDK。
不同的三方sdk建议各自定义一个实现interface
的类,并在该类初始化的getInstance
方法中将类的单例设置给SDK管理类的static
实例。
iOS
三方SDK组件化时需要针对三方SDK提供的接口定义一个Protocol
(比如框架推送协议HLPushManagerProtocol
),Protocol
中必选方法为三方SDK必需的基础方法。同时新建一个SDK管理类(比如框架推送管理类HLPushManager
),SDK管理类持有一个id
类型且实现Protocol
的属性,SDK管理类提供的方法的内部实现通过调用该属性来调用到三方SDK。
id
类型且实现Protocol
的属性在何时赋何值呢?建议定义一个实现Protocol
的类,并在该类的load
方法中将类的单例设置给SDK管理类的属性,从而当实现了Protocol
的类被加载时SDK管理类的属性就已经被赋值。