私有屬性的Get Set 與 Public
最近經常思考一個問題,類的屬性直接宣告為public 不就可以直接賦值和呼叫了麼?為什麼還要用get和set呢?
1、別和我談orm框架
2、大多數業務情況下都是get set並存,不存在只get 或只set
3、別和我談規範,我都不用get set也是一種規範
4、思考這個問題的原因不是在於懶得寫get set 而是要深究這種編寫思想
我的看法:
首先任何的封裝目的都是為了程式的安全性、可維護性、規範性等等
安全性:屬性宣告為private 利用get set封裝,當只提供get或set的業務場景出現是才體現出安全性,避免出現不該修改的屬性修改了,不可以訪問的屬性值get到了
規範性:所有的類都應該私有化屬性變數,通過方法獲取和賦值
可維護性:當某個業務有一天突然需要只讀取男性的資訊的時候,可以再get方法內新增條件判斷,而不需要在眾多的類物件.屬性得到後進行判斷,修改位置唯一也便於恢復業務場景
結論:之所以將類的屬性進行封裝主要還是在於可維護性,如果專案不考慮這種業務場景,public的屬性也無關係,但是你能確定業務真的不會變麼?
以上的理解我也不知道正確與否,其實在寫的同時也有一點懵,權當做提供一個理解思路吧。希望路過的大神可以解釋的清楚明白
相關文章
- vue3計算屬性的可寫屬性 set 與 getVue
- 原型鏈上的get與set訪問器屬性原型
- JavaScript get set 訪問器屬性JavaScript
- Python中的私有屬性與私有方法Python
- lombok get/set 與 JavaBean get/setLombokJavaBean
- Vue之computed(計算屬性)詳解get()、set()Vue
- C#中類的屬性訪問器--get和set分析C#
- 私有屬性
- Set size 屬性
- 淺談對屬性描述符__get__、__set__、__delete__的理解delete
- 協議中的私有屬性協議
- 私有setter公有getter屬性
- python呼叫私有屬性的方法總結Python
- Python - 物件導向程式設計 - 公共屬性、保護屬性、私有屬性Python物件程式設計
- Python中訪問私有屬性和私有方法Python
- SQL Server 生成C#公共實體屬性和私有屬性SQLServerC#
- 為什麼 JavaScript 的私有屬性使用 # 符號JavaScript符號
- python:get和setPython
- 淺說 get set
- C# Get SetC#
- Python 訪問和設定私有屬性Python
- Python 類的屬性與例項屬性Python
- public 和私有類欄位[雙語]
- Redis中PipeLine使用(二)---批量get與批量setRedis
- 快速生成get、set方法
- 014、Vue3+TypeScript基礎,computed計算屬性中使用get和set方法來讀取和修改VueTypeScript
- 深刻理解php“繼承“、“私有屬性“、“$this指向“的關係PHP繼承
- 難道是瘋了,要讀寫物件的私有屬性!物件
- selenium用XPATH直接獲取屬性值 需要使用.get_attribute(“屬性名”)
- 初學 PHP __set ( ) 和 __ get ( )PHP
- JavaScript物件的資料屬性與訪問器屬性JavaScript物件
- python的__get__、__set__、__delete__(1)Pythondelete
- css屬性與js中style物件的屬性對應表CSSJS物件
- jQuery設定disabled屬性與移除disabled屬性jQuery
- WPF 之 依賴屬性與附加屬性(五)
- go get 安裝gitlab私有包GoGitlab
- 深入理解物件的資料屬性與訪問器屬性物件
- java反射呼叫set和get方法的通用類Java反射