介面隔離原則的定義 什麼是介面. 什麼是隔離 隔離要求將介面儘量細化,同時介面中的方法儘量少. 介面隔離原則的實現 比如現在有一個人,他身兼數職,是一個老師,要教書,是一個學生,要學習,類圖如下: 如果有一天,他不在教書了,或者又有了新的職業,那我們還要修改調用該類的代碼,更好的做法是將臃腫的介面變 ...
介面隔離原則的定義
什麼是介面.
- 實例介面,比如定義了一個Person類,然後 Person p = new Pserson(); 產生一個實例,Person類就是 p 的介面
- 類介面,就是Java中使用 interface 定義的介面
什麼是隔離
隔離要求將介面儘量細化,同時介面中的方法儘量少.
介面隔離原則的實現
比如現在有一個人,他身兼數職,是一個老師,要教書,是一個學生,要學習,類圖如下:
如果有一天,他不在教書了,或者又有了新的職業,那我們還要修改調用該類的代碼,更好的做法是將臃腫的介面變更為幾個獨立的介面
在使用時的時候通過介面調用.介面是我們設計時對外提供的契約,通過分散定義多個介面,可以預防未來變更的擴散,提高系統的靈活性和可維護性.
介面的規範約束
- 介面要儘量小,這是介面隔離原則的核心定義,但是"小"是有限度的,首先就是不能違背單一職責原則.
- 介面要高內聚,高內聚就是提高介面、類、模塊的處理能力,減少對外的交互.具體就是,要求在介面中儘量少公佈 public 方法,介面是對外的承諾,承諾越少對系統的開發越有利,變更的風險也就越少,同時也有利於降低成本
- 定製服務,定製服務就是單獨為一個個體提供優良的服務,只提供訪問者需要的方法
- 介面設計是有限度的,介面的設計粒度越小,系統越靈活.但是,靈活的同時也帶來了結構的複雜化,開發難度增加,可維護性降低,所以介面設計一定要註意適度.
介面隔離原則就是對介面的定義,同時也是對類的定義,介面和類儘量使用原子介面或原子類來組裝.