[英]boolean, english negation and simply getting rid of the boolean
很多時候,當您編寫代碼時,會有一個標志指示兩種可能性,如下所示:
CACHING_AUTHORIZED
CACHING_UNAUTHORIZED
要么
CACHING_ON
CACHING_OFF
如果您隨后使用布爾值來存儲它,通常它只是“讀取異常”:
CACHING_ON = false;
CACHING_OFF = true;
要么
CACHING_ON = true;
CACHING_OFF = false;
一種可能是編寫:
CACHING
然后只需使用以下代碼即可:
if ( CACHING )
要么
if ( !CACHING )
但是有時候您確實希望同時使用“ ON”和“ OFF”兩種形式。
問題是:無論您選擇哪一個,它並沒有太大變化,無論您如何轉動它都沒有多大意義。
它與boolean的“ getter”問題並不完全不同,后者肯定會引起很多激烈的爭論(我們應該使用isConditionTrue或getIsCondition還是isCondition或getCondition還是簡單地使用condition或conditionTrue等。:我有點滑稽但問題的根源在於,對此已經進行了很長時間的辯論,而且這個話題肯定還沒有結束。
我的問題是不同的:看到沒有
CACHING_ON = false;
CACHING_OFF = true;
也不
CACHING_ON = true;
CACHING_OFF = false;
有意義,我們不應該簡單地擺脫布爾值而去做嗎:
CACHING_ON = 1;
CACHING_OFF = 2;
當然,您正在丟失布爾值,但至少'1'和'2' 不會帶來任何混亂。
我的觀點是:使用布爾值和true / false經常會造成混淆,因為我們混用了兩種不同的東西:英語和邏輯,它們根本就完全不混在一起。
在這里只有兩個可能的情況下使用int很難嗎?
您的方法不清楚值是否為布爾值。 我覺得我應該能夠賦值3。
我真的不明白你的意思。 如果您有2個布爾值,則表示4個可能的狀態,因此您實際上不應以暗示只有2個選項的方式來命名變量。 也許您應該使用枚舉和常量或標志代替。
CACHING = ON
CACHING = OFF
CACHING = EITHER
CACHING = UNKNOWN
CACHING = UNKNOWABLE
CACHING = UNTHINKABLE
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.