再論模型與工具

所有的模型都是錯(cuò)的。所有的模型都應(yīng)該保持簡單。在這兩句話上,經(jīng)濟(jì)學(xué)家和軟件架構(gòu)師能達(dá)成完全一致。或許還包括物理學(xué)家。

識別出哪些是模型哪些是工具至關(guān)重要。它使你的第一個(gè)MVP專注在模型上。使看上去“都重要”的需求也有了天然的優(yōu)先級。

同時(shí),它還使得抽象成了你天然的需要——模型必須是建立在抽象概念上的。接口和實(shí)現(xiàn)也自然分開了。并且,哪些組件必須有接口,哪些組件可以先狗著(工期永遠(yuǎn)不夠)也比較清楚。

想起阿里Java開發(fā)手冊上有一條,要求所有的抽象類都要有Abstract或Base字樣。這是錯(cuò)誤的。十幾二十年前這種做法很普遍。抽象類到底算是模型還是工具?取決于設(shè)計(jì)。很多時(shí)候它是工具,即可以不用它,自己寫個(gè)類實(shí)現(xiàn)接口。這就是近年來業(yè)界很多抽象類都被命名XXXSupport的原因。接口實(shí)現(xiàn)必須以Impl結(jié)尾就更離譜了,這個(gè)后綴本來就是反模式。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容