Java中介面程式設計的好處以及實現方式的選擇?

2021-08-27 04:00:02 字數 1233 閱讀 6680

我們知道,在實際的專案開發中,客戶的需求是經常發生變化的。那如果說,我們不採用介面程式設計,那我們就必須修改我們業務層的**。長此以往,這樣做的後果是什麼呢?答:bug多,不易維護,接手困難

如果我們採用介面程式設計的話:我們只需要在介面中把客戶的需求提取出來, 寫在介面中。這樣,客戶的需求變化時,我們可以實現響應介面的新的實現類,這樣就不需要更改原來的**,這樣就避免了諸多問題。

另外,在設計模式的原則裡的開閉原則,就是要使用介面來實現對擴充套件開放,對修改關閉。這樣也是為了減少各個類之間的依賴。

還有就是,介面開發,小組成員分工合作,互不干擾。適於團隊的協作開發。

介面程式設計也不盡然都是好處。缺點就是介面設計困難,因為,還沒實現,就得把所有的東西想好。

先來看個例子:

inte***ce a 

public

class

bimplements

a public

void

drink()

}

兩種方式

a a = new b();//向上轉型,即類b的物件的引用賦值給介面

b b = new b();//正常的例項化。

我們先來看第一種:

這種方式,在上面的例子中,只能這樣寫:

a.eat()

而當你這樣寫時:

a.drink()這種方式是會報錯的。錯誤內容為:

the method drink() is undefined for the type a

這是因為,在本例中,b在向上轉型為a的時候,是「失去」,而非「得到」。也就是說,「a」的功能窄化!

如果這樣寫:((b)a).drink()//向下轉型是可以呼叫的。

我們在來看第二種:

第二種理所當然了,連個方法都可以呼叫。無需多言。

那我們的結論是什麼? 應該

優先使用

第一種,

前提時,

存在「合

理」的接

口時應 該優

先使用第

一種,前

提時,存

在「合理

」的介面

redis的好處以及應用

redis的好處 a 速度比較快 因為資料是在記憶體中的,b 支援較多的資料型別 比如 string list set map 等 c 支援事物 操作都是源自性的 對於資料而言要麼全部執行 要麼全部不執行 d 豐富的特性 可用於快取 訊息 設定key的過期時間 與memcached相比較的優勢 re...

解耦的好處以及哪來的這麼多好處

關於解耦合的乙個現實例子 跟大部分餐飲企業一樣,星巴克也主要致力於將訂單處理的吞吐量最大化。顧客訂單越多,收入就越多。為此,他們採取了非同步處理的辦法。你在點單時,收銀員取出乙隻咖啡杯,在上面作上記號表明你點的是什麼,然後把這個杯子放到佇列裡去。這裡的佇列指的是在咖啡機前排成一列的咖啡杯。正是這個佇...

執行緒鎖的使用 和好處 以及缺點

上面寫錯了函式名 是mutex.acquire import threading from threading import thread from threading import lock number 0 lock lock def work3 global number for i in r...