——介面隔離原則(ISP)VIP開啟更多姿勢
介面隔離的介面是什麼
- 例項介面:在Java中申明的一個類,使用new關鍵字建立的物件。
- 類介面:Java中使用interface關鍵字定義的介面。
什麼是介面隔離原則
建立單一介面,不需要龐大臃腫的介面,儘量細化介面,同時介面的方法儘量的少。
生活上的例子
我們出去的旅遊的時候,肯定會去住酒店,那麼在前臺登記完成之後,你會拿到一把鑰匙,這個鑰匙只能開啟你預定房間的門。假如前臺給你的不是一把鑰匙,而是一串酒店所有的鑰匙,雖然你任能夠開啟自己預定的房間,但是你也可以開啟其他的房間啊,這個時候,你是不是覺得可以乾點壞事了呢?哈哈,不過現實是遵守介面隔離原則的,我只提供你能夠訪問的。
在使用第三方SDK的時候,他們提供給你介面,基本上都是符合這個原則,你只能夠呼叫他提供給你的api,其他你是沒有訪問許可權的(反射除外),當然如果你自己的寫SDK的時候,也要遵守這個原則,防止使用SDK的開發者呼叫了本不應該開放的介面。
單一職責和介面隔離
單一職責原則講的是實現時的職責分離,實現類需要實現該職責的所有方法。
介面隔離原則講的是設計時的架構分離,限制實現類,避免實現類實現不需要實現的方法,同時也限制外部類訪問的範圍,但是必須符合單一職責原則。
舉個例子:
//書的管理類
interface BookDbManager{
public Book queryBookByName(String name);
public void deleteBookByName(String name);
public Cursor queryBook(String sql);
public void deleteBook(String sql);
}
看看上面的介面,他只是處理Book管理的工作,可以說是符合單一職責原則的,加入限制有兩種身份的人需要使用查詢和刪除Book的功能,一個是管理員,一個是普通使用者,你會直接把BookDbManager都給他們使用嗎?很顯然是不行的,普通使用者不見得會使用sql語句,當然也不能給他使用sql語句,因為這個裡面有很大的風險,所以我們們必須根據身份重新定義新的介面。
//管理員訪問的介面
interface AdminBookDbManager{
public Cursor queryBook(String sql);
public void deleteBook(String sql);
}
//使用者訪問的介面
interface UserBookDbManager{
public Book queryBookByName(String name);
public void deleteBookByName(String name);
}
通過介面隔離原則,有效的隔離不同使用者身份訪問的許可權,並且符合單一職責原則。
相關文章
- 設計原則:介面隔離原則(ISP)
- 設計原則之【介面隔離原則】
- 軟體設計原則—介面隔離原則
- 設計模式:介面隔離原則設計模式
- 必知必會的設計原則——介面隔離原則
- 反射、特性、依賴注入、介面隔離原則反射依賴注入
- 設計模式六大原則(四)----介面隔離原則設計模式
- 設計模式的七大原則(2) --介面隔離原則設計模式
- 嘻哈說:設計模式之介面隔離原則設計模式
- 面象物件設計6大原則之四:介面隔離原則物件
- 深入理解介面隔離原則:構建靈活的面向介面軟體
- 精通介面隔離原則,輕鬆實現高內聚、低耦合架構架構
- 編碼最佳實踐——介面分離原則
- 核心介面隔離,要做哪些事情?
- 設計模式例項講解 - 介面隔離設計模式
- S.O.I.L.D 之介面隔離
- 羞,Java 字串拼接竟然有這麼多姿勢Java字串
- OCP原則——開閉原則
- Eureka 多環境隔離方案(包含本地開發人員間隔離)
- [譯] 移動介面設計的 10 項啟發式原則
- AUTOCAD——隔離
- 如何用Serverless讓SaaS獲得更靈活的租戶隔離和更優的資源開銷Server
- 設計原則:開閉原則(OCP)
- 資源隔離技術之記憶體隔離記憶體
- 還原面試現場-ACID與隔離級別面試
- 23種設計模式(十二)介面隔離之門面模式設計模式
- 開閉原則
- React元件隔離React元件
- 事務隔離
- 開放封閉原則:打造更強大的軟體架構架構
- 設計原則之【開放封閉原則】
- 使用Golang的interface介面設計原則Golang
- MySQL事務隔離MySql
- 資料庫隔離資料庫
- Yarn資源隔離Yarn
- MySQL 事務隔離MySql
- 開閉原則——物件導向程式設計原則物件程式設計
- 事務隔離(二):基於加鎖方式的事務隔離原理
- win10防火牆隔離區檔案怎麼恢復_win10防火牆隔離區檔案還原如何操作Win10防火牆