国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

設(shè)計模式和七大原則概述及單一職責(zé)原則詳解

這篇具有很好參考價值的文章主要介紹了設(shè)計模式和七大原則概述及單一職責(zé)原則詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

設(shè)計模式的目的

編寫軟件過程中,程序員面臨著來自,耦合性,內(nèi)聚性以及可維護性,擴展性,重用性等方面的挑戰(zhàn)。設(shè)計模式是為了讓程序,具有更好的

  • 1.代碼重用性(相同代碼,不用重復(fù)編寫)
  • 2.可讀性(編程規(guī)范性,便于其他程序員的閱讀和理解)
  • 3.可擴展性(當(dāng)需要增加新的功能時,非常的方便)
  • 4.可靠性(當(dāng)我們增加新的功能后,對原有的功能沒有影響)
  • 5.使程序呈現(xiàn)高內(nèi)聚,低耦合的特性
    設(shè)計模式(design pattern)包含了面向?qū)ο蟮木瑁?懂了設(shè)計模式,你就懂了面向?qū)ο蠓治龊驮O(shè)計的精要"。學(xué)習(xí)設(shè)計模式,更多的是學(xué)是一種設(shè)計和分析的思想。

七大原則

設(shè)計模式的原則,其實就是程序員在編程時,應(yīng)當(dāng)遵守的原則,也是各種設(shè)計模式的基礎(chǔ)(即設(shè)計模式設(shè)計的依據(jù))。
? 設(shè)計模式常用的七大原則有:單一職責(zé)原則,接口隔離原則,依賴倒轉(zhuǎn)原則,里氏替換原則,開閉原則,迪米特法則,合成復(fù)用原則。

單一職責(zé)原則

介紹

對類來說,即一個類,應(yīng)該只負(fù)責(zé)一項職責(zé),如果類A負(fù)責(zé)兩個不同的職責(zé),職責(zé)1和職責(zé)2。當(dāng)職責(zé)1發(fā)生改變的時候,就可能會影響到職責(zé)2,所以,可以將類A分成A1,A2兩個類。

案例1
/**
 * 這些案例,只是為了講解具體的原則和設(shè)計模式設(shè)計的,不要在意其實用性
 * @author 長名06
 * 單一職責(zé)原則 案例1
 * 案例1 問題分析
 * 存在一個類,負(fù)責(zé)多項職責(zé),即可能有公路上跑火車的情況出現(xiàn)
 */
public class SingResponsibility1 {
    public static void main(String[] args) {
        Vehicle vehicle = new Vehicle();
        vehicle.run("汽車");
        vehicle.run("自行車");
        vehicle.run("火車");
    }
}

class Vehicle{
    public void run(String vehicle){
        System.out.println(vehicle + "在公路上運行");
    }
}

案例2

/**
 * @author 長名06
 * 單一職責(zé)原則 案例2
 * 分析,此案例確實完美依照了單一職責(zé)原則,但是導(dǎo)致的問題是
 * 需要額外創(chuàng)建三個類,消耗大
 */
public class SingResponsibility2 {
    public static void main(String[] args) {
        RoadVehicle vehicle = new RoadVehicle();
        vehicle.run("汽車");
        AirVehicle airVehicle = new AirVehicle();
        airVehicle.run("飛機");
        WaterVehicle waterVehicle = new WaterVehicle();
        waterVehicle.run("輪船");
    }
}

class RoadVehicle {
    public void run(String vehicle) {
        System.out.println(vehicle + "在公路上運行");
    }
}

class AirVehicle {
    public void run(String vehicle) {
        System.out.println(vehicle + "在天空中運行");
    }
}

class WaterVehicle {
    public void run(String vehicle) {
        System.out.println(vehicle + "在水中運行");
    }
}
/**
 * @author 長名06
 * 單一職責(zé)原則 案例3
 * 分析 此案例實現(xiàn),雖一定程度上違反了單一職責(zé)原則,但是
 *  相比于案例2 減少了 類的創(chuàng)建,也就是說在類的方法級別上
 *  遵守了單一職責(zé)原則
 */
public class SingResponsibility3 {
    public static void main(String[] args) {
        Vehicle2 vehicle2 = new Vehicle2();
        vehicle2.runInRoad("汽車");
        vehicle2.runInAir("飛機");
        vehicle2.runInWater("輪船");
    }
}

class Vehicle2{
    public void runInRoad(String vehicle){
        System.out.println(vehicle + "在公路上運行");
    }

    public void runInAir(String vehicle){
        System.out.println(vehicle + "在天空中運行");
    }

    public void runInWater(String vehicle){
        System.out.println(vehicle + "在水上運行");
    }
}

分析和總結(jié)

  • 1.降低類的復(fù)雜度,一個類只負(fù)責(zé)維持一項職責(zé);
  • 2.提高類的可讀性,可維護性;
  • 3.降低類變更可能會引起的風(fēng)險;
  • 4.通常情況下,我們應(yīng)當(dāng)遵守單一職責(zé)原則,只有邏輯非常簡單,才可以在代碼級別違反單一職責(zé)原則;只有方法很少,才能在方法上保持單一原則。

只是為了記錄,自己的學(xué)習(xí)歷程,且本人水平有限,不對之處,請指正。文章來源地址http://www.zghlxwxcb.cn/news/detail-662504.html

到了這里,關(guān)于設(shè)計模式和七大原則概述及單一職責(zé)原則詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【設(shè)計模式之禪】單一職責(zé)

    【設(shè)計模式之禪】單一職責(zé)

    最近前輩推薦我讀《設(shè)計模式之禪》這本書,原因是我寫的代碼質(zhì)量實在是一言難盡,開發(fā)速度很快,但是bug數(shù)就很多了,設(shè)計原則這種知識就需要掌握 寫這篇文主要是記錄自己的學(xué)習(xí)以及督促自己 第一章【單一職責(zé)】 從我理解的層面來談?wù)剢我辉瓌t:明確每個類每個方法

    2024年02月13日
    瀏覽(16)
  • 七大設(shè)計模式原則

    開閉原則,是面向設(shè)計中最基礎(chǔ)的設(shè)計原則。 一個軟件實體類、模塊、函數(shù)應(yīng)該 對擴展開放、對修改關(guān)閉 。 強調(diào)的是用抽象構(gòu)建框架,用實現(xiàn)擴展細節(jié)??梢蕴岣哕浖到y(tǒng)的可復(fù)用性和可維護性。 實例: 高層模塊不應(yīng)該依賴底層模塊,二者都應(yīng)該依賴其抽象。 抽象不應(yīng)該

    2024年02月15日
    瀏覽(19)
  • 設(shè)計模式之七大原則

    ???????? 單一職責(zé)原則 告訴我們一個類應(yīng)該只有一個責(zé)任或者只負(fù)責(zé)一件事情。 ????????想象一下,如果一個類承擔(dān)了太多的責(zé)任,就像一個人同時負(fù)責(zé)做飯、洗衣服和打掃衛(wèi)生一樣,那么這個類會變得非常復(fù)雜,難以理解和維護。而且,當(dāng)需要修改其中一個功能時

    2024年02月13日
    瀏覽(14)
  • 設(shè)計模式七大原則

    設(shè)計模式七大原則

    七大原則有: 單一原則原則 接口隔離原則 依賴倒轉(zhuǎn)原則 里氏替換原則 開閉原則 迪米特法則 合成復(fù)用原則 1.1 基本介紹 ? 對類來說的, 即一個類應(yīng)該只負(fù)責(zé)一項職責(zé) 。 如類A負(fù)責(zé)兩個不同的職責(zé):職責(zé)1,職責(zé)2。當(dāng)職責(zé)1需求變更而改變A時,可能造成職責(zé)2執(zhí)行錯誤,所以

    2024年02月20日
    瀏覽(18)
  • 設(shè)計模式的七大原則

    設(shè)計模式的七大原則是一組指導(dǎo)性原理,旨在幫助開發(fā)者編寫靈活、可維護、可擴展的代碼。這些原則提倡了良好的軟件設(shè)計習(xí)慣,有助于避免代碼的脆弱性、緊密耦合等問題。以下是設(shè)計模式的七大原則: 1. 單一職責(zé)原則(Single Responsibility Principle, SRP) 一個類應(yīng)該只有一

    2024年02月20日
    瀏覽(19)
  • 面向?qū)ο笤O(shè)計的六大原則(SOLID原則)-——單一職責(zé)原則

    單一職責(zé)原則(Single Responsibility Principle, SRP)是面向?qū)ο缶幊毯驮O(shè)計的五大SOLID原則之一。它強調(diào)一個類、方法或模塊應(yīng)該只有一個職責(zé),即只做一件事情。如果一個類承擔(dān)的職責(zé)過多,那么它的可維護性、可讀性和可擴展性都會受到影響。當(dāng)需要修改類的某個職責(zé)時,可能

    2024年03月12日
    瀏覽(44)
  • 1.設(shè)計模式之七大原則和介紹

    1.設(shè)計模式之七大原則和介紹

    0.為什么我要學(xué)習(xí)設(shè)計模式呢? 我發(fā)現(xiàn)mysql的jdbc有factory有工廠模式(編程思想,不指定語言都可以用) mq有一個QueueBuilder().setArg().xxx().build建造者模式,單例模式貌似也遇到過,前端也遇到了好幾個設(shè)計模式的問題,比如prototype深拷貝和淺拷貝 所以我決定系統(tǒng)的學(xué)習(xí)一下設(shè)計模式…

    2024年02月11日
    瀏覽(34)
  • 創(chuàng)建型模式 (Creational Patterns) 玄子Share 設(shè)計模式 GOF 全23種 + 七大設(shè)計原則

    [外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-NWLAOFtO-1691793071647)(./assets/%E7%8E%84%E5%AD%90Share%20%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F%20GOF%20%E5%85%A823%E7%A7%8D%20+%20%E4%B8%83%E5%A4%A7%E8%AE%BE%E8%AE%A1%E5%8E%9F%E5%88%99.png)] GoF(Gang of Four)是四位計算機科學(xué)家(Erich Gamma、Ri

    2024年02月12日
    瀏覽(28)
  • 設(shè)計模式——設(shè)計模式以及六大原則概述

    設(shè)計模式——設(shè)計模式以及六大原則概述

    設(shè)計模式代表有經(jīng)驗的面向?qū)ο筌浖_發(fā)人員使用的最佳實踐。 設(shè)計模式是軟件開發(fā)人員在軟件開發(fā)過程中面臨的一般問題的解決方案。 這些解決方案是由許多軟件開發(fā)人員在相當(dāng)長的時間內(nèi)通過試錯獲得的。 在 1994 年,由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四

    2024年02月13日
    瀏覽(22)
  • Java設(shè)計模式_概述(設(shè)計模式類型和基本原則)

    設(shè)計模式(Design pattern)代表了最佳的實踐,是軟件開發(fā)人員在軟件開發(fā)過程中面臨一般問題的解決方案,是眾多軟件開發(fā)人員經(jīng)過相當(dāng)長的一段時間的試驗和錯誤總結(jié)出來的。是優(yōu)秀程序猿的經(jīng)驗結(jié)晶。 但不推薦剛?cè)腴T的開發(fā)者學(xué)習(xí),哪怕把代碼搞的一塌糊涂,也要先將功

    2024年04月29日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包