文章出處

一、ISP簡介(ISP--Interface Segregation Principle):
使用多個專門的接口比使用單一的總接口要好。
一個類對另外一個類的依賴性應當是建立在最小的接口上的。
一個接口代表一個角色,不應當將不同的角色都交給一個接口。沒有關系的接口合并在一起,形成一個臃腫的大接口,這是對角色和接口的污染。
 
“不應該強迫客戶依賴于它們不用的方法。接口屬于客戶,不屬于它所在的類層次結構。”這個說得很明白了,再通俗點說,不要強迫客戶使用它們不用的方法,如果強迫用戶使用它們不使用的方法,那么這些客戶就會面臨由于這些不使用的方法的改變所帶來的改變。
 
二、舉例說明:
參考下圖的設計,在這個設計里,取款、存款、轉帳都使用一個通用界面接口,也就是說,每一個類都被強迫依賴了另兩個類的接口方法,那么每個類有可能因為另外兩個類的方法(跟自己無關)而被影響。拿取款來說,它根本不關心“存款操作”和“轉帳操作”,可是它卻要受到這兩個方法的變化的影響。
 

那么我們該如何解決這個問題呢?參考下圖的設計,為每個類都單獨設計專門的操作接口,使得它們只依賴于它們關系的方法,這樣就不會互相影了!
 

三、實現方法:

1、使用委托分離接口
2、使用多重繼承分離接口

文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()