亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

為什么寧可用Lombok也不把成員設置為public

發布時間:2023-03-07 14:45:56 來源:億速云 閱讀:127 作者:iii 欄目:開發技術

這篇“為什么寧可用Lombok也不把成員設置為public”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“為什么寧可用Lombok也不把成員設置為public”文章吧。

    下面系統的分析一下,why?

    1、采用get/set方法其實是Java的一個協議,在1996年12月提出的java bean1.00-A,通過統一的規范可以設置對象的值(比如get、set方法)。很多框架也是在此基礎上開發的,底層源碼也都是通過get/set訪問屬性的。

    2、很多時候,可以通過get/set方法,① 增加一些功能;② 增加一些特定的修改,比如打折;③ 增加一些訪問邏輯;④ 還可以通過set方法觸發一些事件。

    3、如果你將一個屬性定義為public了,而且在50處調用了,此時,產品經理來了一個需求,將此次的促銷商品打五折;難道你要去修改這50處的代碼嗎?如果你用get/set封裝了,修改對應屬性的set方法即可,so easy~!

    4、就像上面所說,大家都這么寫,我也這么寫,但是,對于大多數企業應用來說,直接將屬性寫成public,也是沒毛病。

    5、也可以理解為,“風格統一的代碼更好維護”。

    6、假如我新接手一個項目,要用到某個bean,我也不知道都有什么屬性,一般的做法都是先new一個,然后通過小數點聯想出來,如果沒有get/set,那真的很煩躁。

    7、現在都是面向接口編程,而Java接口中是不能定義普通的屬性的,但可以定義get/set方法。

    為什么寧可用Lombok也不把成員設置為public

    為什么寧可用Lombok也不把成員設置為public

    來,一起回味一下封裝的概念。

    封裝是指一個對象對其他對象隱藏其部分狀態和行為,而僅向程序其他部分暴露有限的接口的能力。封裝也叫作信息隱藏或者數據訪問保護。類通過暴露有限的訪問接口,授權外部僅能通過類提供的方式(或者叫函數)來訪問內部信息或者數據。對于封裝這個特性,我們需要編程語言本身提供一定的語法機制來支持。這個語法機制就是訪問權限控制。

    Lombok應運而生

    為了解決get/set的代碼臃腫問題,Lombok應運而生。簡單無腦,解決一切煩惱。

    使用 Lombok 可以讓代碼更加簡潔,減少冗余的代碼量。使用 Lombok 時,可以使用注解來生成常用的代碼,如 getter、setter、equals、hashCode 和 toString 方法,這些方法通常都是在 Java 類中需要手動編寫的。 使用 Lombok 可以省去這些手動編寫的步驟,使代碼更加簡潔。此外,使用 Lombok 還有一個好處是可以使用注解來生成構造函數和靜態構造函數,這些構造函數可以接受所有屬性作為參數。這樣就可以避免手動編寫很多構造函數的情況。因此,使用 Lombok 可以讓代碼更加簡潔,減少冗余的代碼量,提高代碼的可讀性和可維護性。

    Lombok代替public,因為public成員的可見性太大。將成員定義為public意味著任何地方都可以訪問這個成員,這可能會導致成員被意外地修改,從而影響類的穩定性和正確性。而使用Lombok可以通過自動生成getter和setter方法來保護成員的可見性,從而提高類的封裝性和可維護性。此外,使用Lombok還可以幫助開發人員減少編寫重復的代碼,提升工作效率。

    因此,為了保護成員的可見性并提升代碼的可維護性,許多人寧可使用Lombok,也不愿意將類的成員設為public。

    不和諧的聲音,禁止使用Lombok?

    1、jdk版本問題

    目前國內大多數Java項目,采用的都是JDK1.8,因為它夠穩定,功能也完全夠用,但是,如果哪一天,你的客戶心血來潮,就是想用JDK11,甚至JDK17,此時,你會發現Lombok不好用了,于是,不得不將好幾百個實體類,通過idea生成get/set、equals、toString等方法,很煩躁。

    2、開始營業

    當你的客戶獲取到你的源代碼之后,他也想看看,運行一下,此時發現沒安裝Lombok,報錯了,安裝Lombok,不了解這是什么,還要去百度學習一下,被 迫營業,很煩躁。

    3、可讀性差

    • Lombok隱藏了JavaBean的封裝細節;

    • toString()不知道會打印什么;

    • @AllArgsConstructor提供一個全量構造器, 讓外界在初始化時,可以隨意修改其屬性,極其不安全。如果屬性過多,這個全量構造器,看起來,很雞肋;

    • 參數的順序我們也無法控制,都是按照Lombok的心情來的;

    4、使用Lombok,寫代碼的時候很爽,但它

    • 污染了你的代碼;

    • 玷污了Java語言的純粹;

    • 破壞了Java代碼的完整性、可讀性、安全性;

    • 增加了代碼的耦合度;

    • 增加了代碼的調試難度;

    這是一種弊大于利、得不償失的操作。

    以上就是關于“為什么寧可用Lombok也不把成員設置為public”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    弋阳县| 广西| 昆明市| 彭水| 临邑县| 新建县| 伊金霍洛旗| 旬阳县| 临洮县| 昌图县| 怀集县| 德令哈市| 浦东新区| 蒲城县| 紫阳县| 平遥县| 泰和县| 大兴区| 鄂托克前旗| 民权县| 乐至县| 友谊县| 灌南县| 甘洛县| 曲阜市| 临猗县| 化德县| 含山县| 扎鲁特旗| 兴海县| 富阳市| 北流市| 桂平市| 扎兰屯市| 新野县| 英吉沙县| 周口市| 秦皇岛市| 前郭尔| 西充县| 虎林市|