背景概述:在每個項目中都會使用到對應的分享功能,分享到不同的平臺,通過不同的方式進行分享琢唾。
本文主要想表述的是一個有關(guān)設計的思考:
上圖為一個簡單的設計思路卓起,簡單的來說和敬,基本都是通過一個單例類來進行類的管理的,單例類中又管理了各個平臺的分享(baseplatform). 其中shareInfo類為一個分享的數(shù)據(jù)類戏阅,其中大體就是一些標題昼弟、分享的內(nèi)容,分享的鏈接和分享的圖標還有一個分享的類型奕筐。單例類初始化的時候就進行各個平臺的注冊私杜。
通過share方法中的type來區(qū)分分享到對應的哪些平臺,比如:QQ救欧、微信和微博。
建立一個接口類來統(tǒng)一一下方法锣光,接口有一個好處笆怠,就是只要實現(xiàn)了這個接口的類都可以調(diào)用到接口中的方法,這樣在平臺初始化的時候可以真正的做到動態(tài)誊爹。初始化類中僅管理兩個方法:1 發(fā)送分享 2 接收回調(diào)
在改設計中有一個平臺基類(basePlatform)蹬刷,該基類的作用是統(tǒng)一初始化方法和一些參數(shù)和回調(diào)信息。
如上的設計遇到了一些問題:
1 ?是否有必要為平臺創(chuàng)建一個基類频丘?
其實是沒有必要的办成,因為只要實現(xiàn)了對應的接口就能調(diào)用接口中的方法。當然寫一個基類也有好處搂漠,至少把所有的分享平臺統(tǒng)一起來迂卢,更易于理解。
2 hanleOpenURL的調(diào)用時機桐汤?
hanleOpenURL是分享平臺回調(diào)當前應用的一個調(diào)起方法而克,是在AppDelegate中來進行調(diào)用的,這個地方需要通過Manager存儲對應的平臺怔毛,在調(diào)用appdelegate中的回調(diào)的時候調(diào)用Manager中的同名方法员萍,然后由各個平臺自己實現(xiàn)自己的hanleOpenURL方法。這樣也做到了分平臺管理.
項目的git鏈接地址:https://github.com/IRISZL/IRISShare