發佈接口
原文:PublishedInterface 設計 2003年12月26日
我是在《重構》裏第一次使用“發佈接口(Published Interface)”這個術語的,如果一個class接口在定義它的代碼庫(code base)以外也被用到了,那它就成了一個發佈接口。它比Java的public公開的意味更足,也遠甚於C#的非內部public(non- internal public)。我曾撰文論說過發佈(published)與公有(public)之間的區別比public與private的區別更重要。
其原因在於,一個非發佈接口,對它的使用限制在了唯一一個代碼庫裏邊,因此,你可以修改它——只要在調用它的地方也做好相應的修改。比如改改名字什麼的,現代化的重構工具能幫你輕鬆搞定。然而,這個接口一旦發佈出去,你就鞭長莫及了,你沒辦法修改外界調用它的代碼。
我是在《重構》裏第一次使用“發佈接口(Published Interface)”這個術語的,如果一個class接口在定義它的代碼庫(code base)以外也被用到了,那它就成了一個發佈接口。它比Java的public公開的意味更足,也遠甚於C#的非內部public(non- internal public)。我曾撰文論說過發佈(published)與公有(public)之間的區別比public與private的區別更重要。
其原因在於,一個非發佈接口,對它的使用限制在了唯一一個代碼庫裏邊,因此,你可以修改它——只要在調用它的地方也做好相應的修改。比如改改名字什麼的,現代化的重構工具能幫你輕鬆搞定。然而,這個接口一旦發佈出去,你就鞭長莫及了,你沒辦法修改外界調用它的代碼。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
京東秒送售後系統退款業務重構心得| 京東零售技術團隊
原創
2024-05-16 23:56:23
Spring boot自動裝配實現原理
原創
2024-05-16 23:48:07
一鍵自動化博客發佈工具,用過的人都說好(掘金篇)
原創
2024-05-16 21:38:44
Koupleless 內核系列|模塊化隔離與共享帶來的收益與挑戰
原創
2024-05-15 23:18:46
「Java開發指南」如何用MyEclipse搭建GWT 2.1和Spring?(二)
原創
2024-05-17 12:21:26
Java ThreadPoolShutdown
原創
2024-05-17 02:06:32
通過MVEL表達式和Apache Chain職責鏈模式解耦MQ消息處理節點的實踐應用
原創
2024-05-16 23:56:24
Spring @EnableXxx註解的使用理解
原創
2024-05-16 23:48:06
java將list結果分成3份執行 原創
文文1
2024-05-16 02:09:55
OSS_PIPE:Rust編寫的大規模文件遷移工具
京東雲開發者
2024-05-15 23:59:27
高效調度新篇章:詳解DolphinScheduler 3.2.0生產級集羣搭建
原創
2024-05-15 21:22:54
Spring cloud gateway入門
原創
2024-05-15 11:50:15
JDBC連接openGauss6.0和PostgreSQL16.2性能對比
原創
2024-05-14 11:00:08
爲什麼阿里不建議用excutors創建線程池
原創
2024-05-14 02:07:06