面向對象設計最核心的要素是多態(tài)。多態(tài)是做一切代碼解耦設計的前提,而一個語言最能體現(xiàn)多態(tài)的設計是接口,當然不同語言對于接口的設計是不一樣的。像java c++要求實現(xiàn)接口必須要通過關鍵字implement,這在無形中一定程度多了對于接口包引入的耦合;而像go 或者python對于接口的設計是duck typing模式,一個struct無需聲明到底實現(xiàn)了什么接口,程序在運行期可以判斷出它是不是某個接口的實現(xiàn)。
老師講的關于框架設計給我啟發(fā)最大的是好萊塢原則,即框架要提供的是一種規(guī)范的定義能力,所有基于框架開發(fā)的程序無需關心該如何讓框架運行起來,程序只需要關心怎樣實現(xiàn)框架定義的規(guī)范(接口),框架會完成整個程序的啟動、執(zhí)行和調度。這讓我想到了k8s在處理集群網(wǎng)絡上的方案,k8s并沒有自己去實現(xiàn)各種集群網(wǎng)絡方案,而是定義了網(wǎng)絡方案需要實現(xiàn)的一系列契約和接口,各個想在k8s上實現(xiàn)自己網(wǎng)絡方案的第三方會去實現(xiàn)以及維護,這既極大降低了k8s開發(fā)組對于各種網(wǎng)絡方案的維護成本,又使得網(wǎng)絡方案變得更加易擴展。
2020-06-17 框架設計學習總結
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。