淺談接口與設計模式


 

接口眾所周知就是特定類的共同特征,指明了一個類必須做什么和不能做什么。因為java是單繼承,所以多實現的接口彌補了這一局限性,接口很大程度上也實現了解耦。

解耦:如果一個方法操作的是類,那么你只能使用這個類及其子類,如果想要將這個方法應用於不在繼承結構中的某個類,那么就無法實現這一操作,接口可以在很大程度上放寬這種限制,使我們可以編寫可復用性更好的代碼。

先看一個例子

輸出結果:

有一個Process類,他有一個name 方法,還有一個process方法,這個方法接受一個參數,修改它的值,然后輸出,這個類作為基類被擴展,用來創建不同類型的Processor。Apply.process()方法接受任何類型的Processor,像這樣,創建一個能夠根據傳遞參數的不同而具有不同行為的方法稱為策略設計模式,這類方法包含所有執行的算法中固定不變的部分,策略就是傳遞進去的參數對象。Processor對象就是一個策略。

 

下面創建一個Waveform類

 

filter和processor具有相同的接口元素,但是他並不是繼承自processor類,因此不能將filter用於Apply.process()方法。但是如果Processor是一個接口,就可以復用結構該接口的Apply.process();下面是改造后的:

但是,經常碰到的情況是無法修改想要使用的類。在這種情況下可以使用適配器設計模式。適配器中的代碼將接受所有的接口,並產生我們需要的接口。

在這種適配器的方式中,FilterAdapter的構造器接受所有的接口Filter,然后生成你所需要的接口對象。

關於適配器和策略模式都是在看接口章節的時候簡單的了解了一下,后面再看設計模式的時候再具體研究。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM