EasyShare
一個Android社會化分享腳手架,整合微信,qq,微博分享。 專案地址:github.com/xiong-it/Ea…
作用
這是個Android社會化分享腳手架,利用抽象工廠,橋接模式封裝的一個簡單易定製的分享元件,無法代替ShareSDK等商業化SDK使用,僅供開發交流探討,不建議線上專案直接使用。
結構
- callback-回撥介面定義
- factory-工廠類,頂級抽象工廠定義生產的所有平臺的分享資料函式,子類工廠生產對應的資料型別,新增分享資料型別時需要新增子類工廠生產對應的IShareMode。
- model-模型類,頂級介面為IShareModel,分享資料所需要的資料模型,在此處新增需要分享的資料模型。
- platform-分享目標平臺,ISharePlatform是目標平臺介面,所有衍生平臺需實現該介面, 當接入新的分享平臺時,需要在此處進行擴充套件。
- type-分享資料型別的封裝,分享的入口,頂級介面IShareContentType,持有Share行為,當需要分享的型別發生變化時,需在此處實現新的IShareContentType型別。
- wxapi-包名必須是專案包名,此處只做演示參考用。
- ui-介面相關類,比如IShareDialog.java,分享選擇彈窗的介面類,需在專案中使用的彈窗中實現該介面。
架構
- IShareContent:分享的內容介面定義,具有share行為,通過橋接模式將share行為交給ISharePlatform執行
- ISharePlatform:承接分享內容的目標平臺,實際分享行為的物件介面
- IShareModel:分享內容的屬性封裝,比如標題,圖片地址,連結等
- IShareDataFactory:根據IShareModel生產分享ISharePlatform平臺所需的資料,其實現類抽象工廠AbsShareDataFactory定義了生產微信,朋友圈,QQ,微博4個產品族所需的資料函式
整合步驟
- clone該倉庫
- 參考DemoActivity
當你需要新增分享型別
- 新增IShareModel介面實現類
- 新增IShareContent介面實現類
- 新增抽象工廠子類生產對應資料進行分享
當你需要新增分享平臺
- 引入對應平臺依賴libs
- 新增ISharePlatform介面實現類
- 修改AbsShareDataFactory抽象類擴充套件產品族及其子類實現
- 修改IShareDialog子類實現,新增點選事件