关于分享平台集成设计的一些思考

背景概述:在每个项目中都会使用到对应的分享功能,分享到不同的平台,通过不同的方式进行分享。

本文主要想表述的是一个有关设计的思考:


设计思路

上图为一个简单的设计思路,简单的来说,基本都是通过一个单例类来进行类的管理的,单例类中又管理了各个平台的分享(baseplatform). 其中shareInfo类为一个分享的数据类,其中大体就是一些标题、分享的内容,分享的链接和分享的图标还有一个分享的类型。单例类初始化的时候就进行各个平台的注册。

通过share方法中的type来区分分享到对应的哪些平台,比如:QQ、微信和微博。

建立一个接口类来统一一下方法,接口有一个好处,就是只要实现了这个接口的类都可以调用到接口中的方法,这样在平台初始化的时候可以真正的做到动态。初始化类中仅管理两个方法:1 发送分享 2 接收回调

在改设计中有一个平台基类(basePlatform),该基类的作用是统一初始化方法和一些参数和回调信息。

如上的设计遇到了一些问题:

1  是否有必要为平台创建一个基类?

其实是没有必要的,因为只要实现了对应的接口就能调用接口中的方法。当然写一个基类也有好处,至少把所有的分享平台统一起来,更易于理解。

2 hanleOpenURL的调用时机?

hanleOpenURL是分享平台回调当前应用的一个调起方法,是在AppDelegate中来进行调用的,这个地方需要通过Manager存储对应的平台,在调用appdelegate中的回调的时候调用Manager中的同名方法,然后由各个平台自己实现自己的hanleOpenURL方法。这样也做到了分平台管理.

项目的git链接地址:https://github.com/IRISZL/IRISShare

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,227评论 25 708
  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 13,910评论 0 15
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,764评论 18 399
  • 早上七点以后是生活,晚上七点以后是写作 自从学习控制时间以来,我第一步就是压缩自己的休息时间,从晚上十点上...
    夜语时阅读 709评论 0 9