這裏是修真院前端小課堂,每篇分享文從html
【背景介紹】【知識剖析】【常見問題】【解決方案】【編碼實戰】【擴展思考】【更多討論】【參考文獻】前端
八個方面深度解析前端知識/技能,本篇分享的是:程序員
【爲何要使用INTERFACE】架構
你們好,我是IT修真院成都分院第13期的學員,一枚正直純潔善良的JAVA程序員,今天給你們分享一下,修真院官網JAVA任務一,深度思考中的知識點——工具
爲何要使用INTERFACE,而不是直接使用一個實體類來完成任務? INTERFACE和IMPL這種方式的好處是什麼?編碼
1.背景介紹.net
接口(interface):在JAVA中,接口是對行爲的抽象,是一組規則的集合.htm
接口是抽象類的延伸能夠將它看作是純粹的抽象類.對象
抽象類blog
一個類含有抽象方法則稱這個類爲抽象類,用abstract修飾,抽象類中並不能只有抽象方法,它和普通類同樣,一樣能夠擁有成員變量和普通的成員方法。
不過抽象類也不徹底和普通類相同
1.抽象方法必須爲public或者protected
2.抽象類不能用來建立對象;
3.若是一個類繼承於一個抽象類,則子類必須實現父類的抽象方法。
2.知識剖析
在JAVA中描述對象屬性的主要是抽象類
可是抽象類只能被一次繼承,不能屢次繼承
爲了在JAVA中可以使用屢次繼承,就引入了接口這個工具
接口的使用方法
接口的定義形式是:public interface InterfaceName{
//實現方法
}
接口中能夠含有變量和方法
接口能夠經過其餘類使用"implments"來實現
當一個類使用了一個接口,接口中的全部方法必須被實現,不然這個類必須聲明爲抽象類
爲何使用interface
1.接口的意義在於抽象
2.不一樣部件或層次的開發人員能夠並行開工,能夠經過接口,統一標準
3.代碼簡潔,便於查看
3.常見問題
1.接口和抽象類之間的區別
接口是用interface聲明的,而抽象類則是用abstract
抽象類中抽象方法能夠用public,protected和default修飾符修飾.接口的默認修飾符是public,且不可以使用其餘修飾符
抽象方法能夠繼承一個類和實現多個接口,接口只能夠繼承一個或者多個其餘接口
抽象類須要子類使用extends關鍵字繼承抽象類,接口使用implements來實現接口
抽象類速度快,接口速度稍慢於抽象類
2.接口是抽象類的一種爲何還要使用interface
JAVA中類的繼承至多隻有一個,可是對象的屬性不可能只有一個,爲了實現多態,加入了interface的概念
3.爲何接口只能被public修飾
接口中能夠含有 變量和方法
接口中的變量會被隱式地指定爲public static final變量
方法會被隱式地指定爲public abstract方法
4.接口的使用場景
1.類與類以前須要特定的接口進行協調,而不在意其如何實現。
2.做爲可以實現特定功能的標識存在,也能夠是什麼接口方法都沒有的純粹標識
3.須要將一組類視爲單一的類,而調用者只經過接口來與這組類發生聯繫。
4.須要實現特定的多項功能,而這些功能之間可能徹底沒有任何聯繫。
5.編碼實戰
6.擴展思考
貧血模型和充血模型
貧血模型
貧血模型:是指領域對象裏只有get和set方法,或者包含少許的CRUD方法,全部的業務邏輯都不包含在內而是放在Business Logic層。
優勢是系統的層次結構清楚,各層之間單向依賴,Client->(Business Facade)->Business Logic->Data Access(ADO.NET)。固然Business Logic是依賴Domain Object的。彷佛如今流行的架構就是這樣,固然層次還能夠細分。
該模型的缺點是不夠面向對象,領域對象只是做爲保存狀態或者傳遞狀態使用,因此就說只有數據沒有行爲的對象不是真正的對象。
充血模型: 層次結構和上面的差很少,不過大多業務邏輯和持久化放在Domain Object裏面,Business Logic只是簡單封裝部分業務邏輯以及控制事務、權限等,這樣層次結構就變成Client->(Business Facade)->Business Logic->Domain Object->Data Access。
優勢是面向對象,Business Logic符合單一職責,不像在貧血模型裏面那樣包含全部的業務邏輯太過沉重。
缺點:不能更好的分模塊開發,業務邏輯比較混亂
7.參考文獻
https://www.cnblogs.com/dolph...
https://www.cnblogs.com/tianx...
https://blog.csdn.net/liuyish...
https://blog.csdn.net/a910626...
今天的分享就到這裏啦,歡迎你們點贊、轉發、留言、拍磚~