日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

        歡迎訪問(wèn) 生活随笔!

        生活随笔

        當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

        java

        Java开发的六大基本原则

        發(fā)布時(shí)間:2024/1/18 java 39 豆豆
        生活随笔 收集整理的這篇文章主要介紹了 Java开发的六大基本原则 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

        文章目錄

          • 1.單一職責(zé)原則
          • 2.開(kāi)放封閉原則
          • 3.里氏替換原則
          • 4.接口隔離原則
          • 5.依賴(lài)倒置原則
          • 6.迪米特原則

        設(shè)計(jì)模式之禪
        Java開(kāi)發(fā)六大基本原則

        1.單一職責(zé)原則

        單一職責(zé)原則(Single Responsibility Principle, SRP):一個(gè)類(lèi)只負(fù)責(zé)一個(gè)功能領(lǐng)域中的相應(yīng)職責(zé),或者可以定義為:就一個(gè)類(lèi)而言,應(yīng)該只有一個(gè)引起它變化的原因。

        舉例:數(shù)據(jù)庫(kù)連接類(lèi)應(yīng)該只負(fù)責(zé)數(shù)據(jù)庫(kù)連接,而不應(yīng)該添加CRUD功能。

        2.開(kāi)放封閉原則

        開(kāi)閉原則(Open-Closed Principle, OCP):一個(gè)軟件實(shí)體應(yīng)當(dāng)對(duì)擴(kuò)展開(kāi)放,對(duì)修改關(guān)閉。即軟件實(shí)體應(yīng)盡量在不修改原有代碼的情況下進(jìn)行擴(kuò)展。

        為什么:便于代碼復(fù)用,如果修改的話(huà)還需要看懂原有函數(shù)功能,擴(kuò)展只需要使用原有代碼

        3.里氏替換原則

        里氏代換原則(Liskov Substitution Principle, LSP):所有引用基類(lèi)(父類(lèi))的地方必須能透明地使用其子類(lèi)的對(duì)象。

        在軟件中將一個(gè)基類(lèi)對(duì)象替換成它的子類(lèi)對(duì)象,程序?qū)⒉粫?huì)產(chǎn)生任何錯(cuò)誤和異常,反過(guò)來(lái)則不成立,如果一個(gè)軟件實(shí)體使用的是一個(gè)子類(lèi)對(duì)象的話(huà),那么它不一定能夠使用基類(lèi)對(duì)象。例如:我喜歡動(dòng)物,那我一定喜歡狗,因?yàn)楣肥莿?dòng)物的子類(lèi);但是我喜歡狗,不能據(jù)此斷定我喜歡動(dòng)物,因?yàn)槲也⒉幌矚g老鼠,雖然它也是動(dòng)物。

        4.接口隔離原則

        接口隔離原則(Interface Segregation Principle, ISP):使用多個(gè)專(zhuān)門(mén)的接口,而不使用單一的總接口,即客戶(hù)端不應(yīng)該依賴(lài)那些它不需要的接口。

        接口僅僅提供客戶(hù)端需要的行為,客戶(hù)端不需要的行為則隱藏起來(lái),應(yīng)當(dāng)為客戶(hù)端提供盡可能小的單獨(dú)的接口,而不要提供大的總接口。在面向?qū)ο缶幊陶Z(yǔ)言中,實(shí)現(xiàn)一個(gè)接口就需要實(shí)現(xiàn)該接口中定義的所有方法,因此大的總接口使用起來(lái)不一定很方便,為了使接口的職責(zé)單一,需要將大接口中的方法根據(jù)其職責(zé)不同分別放在不同的小接口中,以確保每個(gè)接口使用起來(lái)都較為方便,并都承擔(dān)某一單一角色。接口應(yīng)該盡量細(xì)化,同時(shí)接口中的方法應(yīng)該盡量少,每個(gè)接口中只包含一個(gè)客戶(hù)端(如子模塊或業(yè)務(wù)邏輯類(lèi))所需的方法即可,這種機(jī)制也稱(chēng)為“定制服務(wù)”,即為不同的客戶(hù)端提供寬窄不同的接口。

        5.依賴(lài)倒置原則

        依賴(lài)倒轉(zhuǎn)原則(Dependency Inversion Principle, DIP):抽象不應(yīng)該依賴(lài)于細(xì)節(jié),細(xì)節(jié)應(yīng)當(dāng)依賴(lài)于抽象。換言之,要針對(duì)接口編程,而不是針對(duì)實(shí)現(xiàn)編程。

        依賴(lài)倒轉(zhuǎn)原則要求我們?cè)诔绦虼a中傳遞參數(shù)時(shí)或在關(guān)聯(lián)關(guān)系中,盡量引用層次高的抽象層類(lèi),即使用接口和抽象類(lèi)進(jìn)行變量類(lèi)型聲明、參數(shù)類(lèi)型聲明、方法返回類(lèi)型聲明,以及數(shù)據(jù)類(lèi)型的轉(zhuǎn)換等,而不要用具體類(lèi)來(lái)做這些事情。為了確保該原則的應(yīng)用,一個(gè)具體類(lèi)應(yīng)當(dāng)只實(shí)現(xiàn)接口或抽象類(lèi)中聲明過(guò)的方法,而不要給出多余的方法,否則將無(wú)法調(diào)用到在子類(lèi)中增加的新方法。

        6.迪米特原則

        迪米特法則(Law of Demeter, LoD):一個(gè)軟件實(shí)體應(yīng)當(dāng)盡可能少地與其他實(shí)體發(fā)生相互作用。

        應(yīng)該盡量減少對(duì)象之間的交互,如果兩個(gè)對(duì)象之間不必彼此直接通信,那么這兩個(gè)對(duì)象就不應(yīng)當(dāng)發(fā)生任何直接的相互作用,如果其中的一個(gè)對(duì)象需要調(diào)用另一個(gè)對(duì)象的某一個(gè)方法的話(huà),可以通過(guò)第三者轉(zhuǎn)發(fā)這個(gè)調(diào)用。簡(jiǎn)言之,就是通過(guò)引入一個(gè)合理的第三者來(lái)降低現(xiàn)有對(duì)象之間的耦合度。

        總結(jié)

        以上是生活随笔為你收集整理的Java开发的六大基本原则的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

        如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。