extraInfo的设计

记录一下工作中所用到的代码设计,假如你开发一个静态库给公司里写业务的程序员去用。静态库设计的时候与app之间是没有耦合的。
比如静态库是市面上几个广告库的集合,接入你写的静态库就可以根据后台的配置展示不同平台的广告,在静态库内部必定涉及到统计,比如展示和点击。这两个统计都需要给server提供这样一个对象,来上传广告平台和广告类型。

statisticsObject = {
 "platform":plat,  //exp:csj,gdt,google...
 "position":pos,  //inter, interstitial, reward, splash...
}

突然某天,服务端要求根据调用静态库不同的入口在这个统计对象中添加一个字段from,比较直观的做法就是直接给外部暴露一个设计from的接口,但是如果未来某天服务端又需要在这个统计中上传用户使用app的时长呢?
能够一劳永逸的办法就是在静态库中对外开放一个extraInfo的接口,可以传入一个对象,在iOS中就是NSDictionary,一个字典。至于传入的内容,静态库不用知道是什么,只是在调用统计接口的时候把extraInfo里的信息与在静态库内部生成的statisticsObject合并在一起上传给服务器即可。
第一次做extraInfo的时候还想要把from作为公开的key暴露给业务端,后来经过老板的指导,在静态库内不去解析extraInfo而直接发给server即可。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,479评论 2赞 89
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 9,114评论 28赞 54
  • 首先介绍下自己的背景: 我11年左右入市到现在,也差不多有4年时间,看过一些关于股票投资的书籍,对于巴菲特等股神的...
    瞎投资阅读 6,076评论 3赞 8
  • ![Flask](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAW...
    极客学院Wiki阅读 8,116评论 0赞 3
  • 不知不觉易趣客已经在路上走了快一年了,感觉也该让更多朋友认识知道易趣客,所以就谢了这篇简介,已做创业记事。 易趣客...
    Physher阅读 4,085评论 1赞 2

友情链接更多精彩内容