最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java設(shè)計(jì)模式中的單一責(zé)任原則詳解

 更新時(shí)間:2023年11月09日 11:17:28   作者:一只小熊貓呀  
這篇文章主要介紹了Java設(shè)計(jì)模式中的單一責(zé)任原則詳解,應(yīng)該有且僅有一個(gè)原因引起類的變更,即單一指責(zé)原則要求一個(gè)借口或類只有一個(gè)原因引起變化,也就是一個(gè)接口或類只有一個(gè)職責(zé),它就負(fù)責(zé)一件事情,需要的朋友可以參考下

1、基本介紹

對類來說,即一個(gè)類應(yīng)該只負(fù)責(zé)一項(xiàng)職責(zé)。

如類A負(fù)責(zé)兩個(gè)不同職責(zé):職責(zé)1,職責(zé)2。當(dāng)職責(zé)1需求變更而改變A時(shí),可能造成職責(zé)2執(zhí)行錯(cuò)誤,所以需要將類A的粒度分為A1,A2

2、應(yīng)用實(shí)例

2.1未遵循單一責(zé)任原則

在方式1的run方法中,飛機(jī)在公路上運(yùn)行。明顯違反了單一責(zé)任原則

package com.weirdo.principle.singleResponsibility;

public class SingleResponsibility1 {
    public static void main(String[] args) {
        Vehicle vehicle = new Vehicle();
        vehicle.run("摩托車");
        vehicle.run("汽車");
        vehicle.run("飛機(jī)");
    }
    
    //交通工具類
    static class Vehicle{
        public void run(String vehicle){
            System.out.println(vehicle+"在公路上運(yùn)行...");
        }
    }
}

2.2遵循單一責(zé)任原則(類級)

遵守單一責(zé)任原則。

但是這樣做改動(dòng)很大,即將類分寫,同時(shí)需要修改客戶端。

package com.weirdo.singleResponsibility;

public class SingleResponsibility2 {
    public static void main(String[] args) {
        RoadVehicle roadVehicle = new RoadVehicle();
        roadVehicle.run("摩托車");
        roadVehicle.run("汽車");
        AirVehicle airVehicle = new AirVehicle();
        airVehicle.run("飛機(jī)");
    }
    static class RoadVehicle {
        public void run(String vehicle) {
            System.out.println(vehicle + "在公路上運(yùn)行...");
        }
    }
    static class AirVehicle {
        public void run(String vehicle) {
            System.out.println(vehicle + "在天上上運(yùn)行...");
        }
    }
}

2.3遵循單一責(zé)任原則(方法級)

這種修改方法沒有對原來的類做大的修改,只是增加方法。

然沒有在類這個(gè)級別上遵守單一責(zé)任原則,但是在方法級別上仍然是遵守單一責(zé)任

package com.weirdo.singleResponsibility;

public class SingleResponsibility3 {

    public static void main(String[] args) {
        Vehicle  vehicle = new Vehicle();
        vehicle.runAir("飛機(jī)");
        vehicle.runRoad("汽車");
        vehicle.runWater("航母");
    }

    static class Vehicle {
        public void runRoad(String vehicle) {
            System.out.println(vehicle + "在公路上運(yùn)行...");
        }
        public void runAir(String vehicle) {
            System.out.println(vehicle + "在公路上運(yùn)行...");
        }
        public void runWater(String vehicle) {
            System.out.println(vehicle + "在水里運(yùn)行...");
        }
    }
}

3、注意事項(xiàng)

  • 降低類的復(fù)雜都,一個(gè)類只負(fù)責(zé)一項(xiàng)職責(zé)
  • 提高類的可讀性,可維護(hù)性
  • 通常情況下,應(yīng)該遵守單一責(zé)任原則。只有邏輯足夠簡單,才可以在代碼級違反單一責(zé)任原則:只有類中方法數(shù)量足夠少。可以在方法級別保持單一責(zé)任原則

到此這篇關(guān)于Java設(shè)計(jì)模式中的單一責(zé)任原則詳解的文章就介紹到這了,更多相關(guān)Java單一責(zé)任原則內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • RxJava中map和flatMap的用法區(qū)別源碼解析

    RxJava中map和flatMap的用法區(qū)別源碼解析

    這篇文章主要為大家介紹了RxJava中map和flatMap的用法區(qū)別源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • JDK都出到14了,你有什么理由不會函數(shù)式編程(推薦)

    JDK都出到14了,你有什么理由不會函數(shù)式編程(推薦)

    這篇文章主要介紹了JDK都出到14了,你有什么理由不會函數(shù)式編程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • java中stack(棧)的使用代碼實(shí)例

    java中stack(棧)的使用代碼實(shí)例

    這篇文章主要介紹了java中stack(棧)的使用代碼實(shí)例,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • 詳解如何使用Java編寫圖形化的窗口

    詳解如何使用Java編寫圖形化的窗口

    這篇文章主要介紹了如何使用Java編寫圖形化的窗口,是Java的本地GUI軟件開發(fā)的基礎(chǔ),需要的朋友可以參考下
    2015-10-10
  • Servlet+JavaBean+JSP打造Java Web注冊與登錄功能

    Servlet+JavaBean+JSP打造Java Web注冊與登錄功能

    比作MVC的話,控制器部分采用Servlet來實(shí)現(xiàn),模型部分采用JavaBean來實(shí)現(xiàn),而大部分的視圖采用Jsp頁面來實(shí)現(xiàn),接下來我們就來詳細(xì)看看如何用Servlet+JavaBean+JSP打造Java Web注冊與登錄功能
    2016-05-05
  • Java8新特性之默認(rèn)方法詳解

    Java8新特性之默認(rèn)方法詳解

    JAVA8 所提供的默認(rèn)方法,就是在接口上你可以定義某些方法的實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于Java8新特性之默認(rèn)方法的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-02-02
  • java web將數(shù)據(jù)導(dǎo)出為pdf格式文件代碼片段

    java web將數(shù)據(jù)導(dǎo)出為pdf格式文件代碼片段

    這篇文章主要為大家詳細(xì)介紹了java web將數(shù)據(jù)導(dǎo)出為pdf格式文件代碼片段,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • SpringBoot項(xiàng)目打包war包時(shí)無法運(yùn)行問題的解決方式

    SpringBoot項(xiàng)目打包war包時(shí)無法運(yùn)行問題的解決方式

    在開發(fā)工程中,使用啟動(dòng)類啟動(dòng)能夠正常啟動(dòng)并測試,下面這篇文章主要給大家介紹了關(guān)于SpringBoot項(xiàng)目打包war包時(shí)無法運(yùn)行問題的解決方式,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • ThreadLocal內(nèi)存泄漏問題解決方案

    ThreadLocal內(nèi)存泄漏問題解決方案

    這篇文章主要介紹了ThreadLocal內(nèi)存泄漏問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Java運(yùn)行時(shí)數(shù)據(jù)區(qū)劃分原理解析

    Java運(yùn)行時(shí)數(shù)據(jù)區(qū)劃分原理解析

    這篇文章主要介紹了Java運(yùn)行時(shí)數(shù)據(jù)區(qū)劃分原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04

最新評論

无锡市| 宾川县| 青铜峡市| 兴义市| 洱源县| 云霄县| 安图县| 鸡西市| 潜江市| 常熟市| 金川县| 秦皇岛市| 东乡族自治县| 南华县| 宁陵县| 册亨县| 梧州市| 新田县| 乌鲁木齐市| 双城市| 庄河市| 如东县| 房山区| 宜川县| 涟源市| 尤溪县| 呼伦贝尔市| 宣化县| 福泉市| 鄂托克前旗| 新和县| 新蔡县| 惠安县| 斗六市| 金坛市| 平利县| 崇仁县| 石阡县| 锡林郭勒盟| 文山县| 石渠县|