姓名:? 李小娜
轉(zhuǎn)載自:http://www.reibang.com/p/e1db8852210e
[嵌牛導(dǎo)讀]:? 這段時間浸赫,項目基本完成,進入測試上線階段裙士,終于可以閑下來查漏補缺了,這里我將復(fù)習(xí)下android所需要的java基礎(chǔ),也可以幫大家回憶一下测秸,今年的Google. IO 大會上,Google宣布Kotlin成為Android的官方語言,有興趣的可以去學(xué)習(xí)下霎冯,Java作為Android的第一個語言 還是需要把這部分知識打牢固的铃拇。
[嵌牛鼻子]:? 三大特性? 6大原則?
[嵌牛提問]: Android需要的java的6大原則是什么?
[嵌牛正文]:
1、三大特性
java作為面向?qū)ο蟮恼Z言沈撞,他的三大特性:繼承慷荔、封裝、多態(tài)缠俺。
2显晶、6大原則
單一職責(zé)原則(Single? Responsibility. Principle)
定義:? 不要存在多余一個導(dǎo)致類變更的原因。也就是說晋修,一個類只負責(zé)一項職責(zé)
案例:? 工廠A負責(zé)生產(chǎn)面包和牛奶吧碾,當(dāng)生產(chǎn)面包的需求發(fā)生變化時,需要改變工廠生產(chǎn)模式墓卦,這事就有可能影響牛奶的生產(chǎn)了倦春。
解決方案:? 遵循單一職責(zé)原則,分別建立兩個子公司落剪,一個負責(zé)生產(chǎn)面包睁本,一個負責(zé)生產(chǎn)牛奶,這樣如果面包需求變了就不會影響牛奶的生產(chǎn)了忠怖。
我理解的單一職責(zé)原則就是在開發(fā)過程中盡量將一些類的職責(zé)明確呢堰、唯一。
遵循單一職責(zé)的優(yōu)點:
降低復(fù)雜度
提高可讀性
降低對其他功能的影響
里氏替換原則(Liskov. Substitution.Principle)
.定義:? 所有引用基類的地方必須能夠透明地使用其子類的對象
通俗的說凡泣,就是用父類的地方可以用子類去代替枉疼,但是用子類的地方用父類不一定能代替。
里氏替換原則包含4層含義:
1.子類必須完全實現(xiàn)父類的方法
2.子類可以有自己的方法
3.當(dāng)子類的方法重載父類的方法時鞋拟,形參要比父類的范圍更大
4.當(dāng)子類的方法實現(xiàn)父類的抽象方法時骂维,方法的返回值要比父類的更嚴格
優(yōu)點:? 可以對后期版本升級,增添子類時都可以很好的維護
依賴倒置原則(Dependence. Inversion. Principle)
定義:? 高層模塊不應(yīng)該依賴底層模塊贺纲,應(yīng)該依賴其抽象航闺,抽象不應(yīng)該依賴其細節(jié),細節(jié)應(yīng)該依賴其抽象猴誊。
底層模塊: 負責(zé)基本的操作
高層模塊: 由多個底層模塊組成潦刃,負責(zé)復(fù)雜的操作
抽象:? 在java中指的是接口或者抽象類
依賴倒置的核心思想是面向接口編程,相對于細節(jié)的多變性懈叹,抽象的穩(wěn)定性更高一些乖杠。以抽象為基礎(chǔ)搭建起來的架構(gòu)比以細節(jié)搭建起來的框架穩(wěn)定的多。
接口隔離原則(Interface. segregation. Principle)
定義:? 客戶端不應(yīng)該依賴它不需要的接口澄成,類間的依賴關(guān)系應(yīng)該建立在最小的接口上滑黔。
迪米特法則(Low. of. Demeter. LoD)
定義:? 一個對象應(yīng)該對其他對象有最少的了解笆包,只與直接的朋友通信。
開閉原則(Open Closed Principle略荡,OCP)
定義:一個軟件實體如類、模塊和函數(shù)應(yīng)該對擴展開發(fā)歉胶,對修改關(guān)閉汛兜。即軟件實體應(yīng)盡量在不修改原有代碼的情況下進行擴展。
軟件實體包括:
項目或軟件產(chǎn)品中按照一定的邏輯規(guī)則劃分的模塊
抽象和類
方法