由于开发者通过接口修改了菜单配置_Android SDK开发艺术探索(四)个性化配置...
一、前言
本篇是Android SDK開發藝術探索系列的第四篇文章。介紹了通過流式API設計思想優雅地實現SDK的自定義選項配置需求。
目錄概覽:
一、前言 二、SDK自定義配置2.1、什么是自定義配置2.2、設計一個配置方法 三、結語系列文章:
Android SDK開發藝術探索(一)開篇與設計Android SDK開發藝術探索(二)Exception or ErrorCode
Android SDK開發藝術探索(三)初始化
Android SDK開發藝術探索(四)個性化配置
Android SDK開發藝術探索(五)安全與校驗
Android SDK開發藝術探索(六)壓縮與優化
Android SDK開發藝術探索(七)依賴原則與打包方法
二、SDK自定義配置
2.1、什么是自定義配置
在SDK開發中,常見的需求是提供一系列配置方法,用于自定義SDK行為。比如切換調試/正式模式,啟動/關閉某些功能。
某推送SDK自定義配置方法示例2.2、設計一個配置方法
前面我們介紹了自定義配置的概念,并且參考了某推送SDK實現的自定義配置方法。相信大家也能據此思想實現自己SDK的配置了吧!
但是,這種方式未免不太過癮,我們平時開發的時候也可以看到Java代碼中有一種很爽的調用方式,隨便舉個例子:
StringBuilder builder = new StringBuilder(); builder.append("one").append("two").append("three").length();可以看到,連續的流式調用API很方便也很簡潔。這種API實現方式又稱為流式接口(fluent interface)是軟件工程中面向對象API的一種實現方式。那么問題來了,這么好的API設計思想,為什么不用到我們的SDK中來,讓開發者爽一把呢?
先來回顧一下SDK配置的本質:SDK配置方法的本質是為SDK相關功能提供默認配置,并且接收開發者的自定義配置,用于修改默認邏輯。所以我們的方法中,不僅包含默認選項,還要包含修改方方法。話不多說,先上一份模板實例:
配置方法
/*** <pre>* @author : bruce* @time : 2020/07/10* @desc : MySDKConfig* @version : 1.0* </pre>*/ public class MySDKConfig {//默認配置private static boolean sDebug = false;private static long sTimeout = 8000L;private static final MySDKConfig.Config CONFIG = new MySDKConfig.Config();public static class Config {private Config() {}/*** 設置調試模式** @param isDebug 模式* @return Config*/public MySDKConfig.Config setDebug(final boolean isDebug) {sDebug = isDebug;return this;}/*** 設置超時時間** @param timeout 超時時間* @return Config*/public MySDKConfig.Config setTimeout(final long timeout) {//此處演示了邊界值的處理方式long minTimeout = 3000L;if (timeout < minTimeout) {sTimeout = minTimeout;} else {sTimeout = timeout;}return this;}}public static boolean isDebug() {return sDebug;}public static long getTimeout() {return sTimeout;}public static MySDKConfig.Config getConfig() {return CONFIG;}}調用示例
//一行代碼,流式調用 MySDKConfig.getConfig().setDebug(true).setTimeout(8000L);從源碼實例可以看到,我們提供了一些默認配置。并通過靜態內部類來實現自定義配置,并且在外層提供了getter方法,將配置提供給SDK其他模塊調用。
其中實現流式調用的關鍵就是每個setter方法中都返回了this對象本身,就這樣實現了流式API接口。
在SDK開發的場景中,由于需要配置的內容多,還涉及到默認配置,特別適合采用流式API配置方法構建自定義配置。其實回頭一想,這種設計思想其實不就是簡化版建造者(Builder)模式的使用場景嗎?
三、結語
回顧一下,本篇簡單介紹了SDK自定義配置的實現,即通過流式API接口設計思想,結合SDK開發的實際需求,設計了一套流式調用(又稱鏈式調用)的SDK個性化配置實現方案。
最后,如果本篇文檔對您的開發有所幫助或啟發,點贊/關注/分享三連就是對作者持續創作最好的激勵,感謝支持!
參考文章
流式接口(fluent interface)
總結
以上是生活随笔為你收集整理的由于开发者通过接口修改了菜单配置_Android SDK开发艺术探索(四)个性化配置...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux cpu核数查看_Linux日
- 下一篇: okhttp上传图片和其他参数_Andr