耦合就是兩個層之間有依賴關係?
同乙個層也可能有依賴關係
看見有解耦的方法就是在相互依賴的兩層之間加一層,可是新加的一層不是又和原來的兩層有耦合關係了嗎?
解耦的方式是讓設計依賴於抽象,而不是依賴於實現,看看設計模式的原則
到底什麼是耦合??
a明確地使用b資源
public
class
aclass
b
現在a依賴於b
public
classa}
class
bimplements
ixinte***ce
ix
呼叫的時候,我可以決定用哪個實現介面的類,甚至可以是從配置檔案反射生成
a a = new a(new b());
也可能因為某個條件
a a = new a(new c());
這樣 a依賴的是抽象的介面ix,而不是具體的類b或者c
追問
恕小弟愚昧,弱弱的問下,這裡所說的「依賴抽象的介面不依賴現實」,是不是說不管類b,類c編譯的版本怎麼變,但始終可以呼叫介面來呼叫類b,類c,所以類a不用編譯了?
回答如果b發生了修改,那我們可以使用c,因為我們依賴的是介面,而不是具體的類(物件)
當需求改變的時候,我們需要修改的只有main函式所在的類(甚至它都可能不用修改,只需要修改配置檔案就可以)。
軟體設計程式的基本思想是,當需求改變的時候,我們的應用程式改變最小
參考:
程式的耦合和解耦
內聚與耦合 問題 try catch exception e 分析 問題 web層 service層 public class userserviceimpl implements userservice dao層 public class userdaoimpl implements userda...
耦合和解耦的理解 vue高耦合和低耦合的理解
耦合是指兩個或兩個以上的體系或兩種運動形式間通過相互作用而彼此影響以至聯合起來的現象。在軟體工程中,物件之間的耦合度就是物件之間的依賴性。物件之間的耦合越高,維護成本越高,因 此物件的設計應使類和構件之間的耦合最小。解耦,字面意思就是解除耦合關係。在軟體工程中,降低耦合度即可以理解為解耦,模組間有依...
設計模式 工廠模式,解除耦合的利器
工廠模式是使用頻率很高的一種設計模式,在面試中也經常問到,今天我們就來學習它。解答這個問題前,我們先來了解什麼是工廠模式。工廠模式其實也稱建立模式,是用於建立物件的一種方式。本質上就是用工廠方法來代替new例項化物件。舉個例子 我們在編寫 的時候,在乙個a類中通過new的方式例項化了類b,那麼a類和...