2014-12-05 53 views
1

例如,當您有每個房間獲得(或至少應獲得)不同房間號碼的class Room時,您是否允許自己將自己的名稱命名爲變量roomNumber而不僅僅是room?因爲您已經知道它屬於Room課程,所以您可以省略roomNumber中的room,然後將它保留爲number。爲了一致起見,我想要包含已經由課程指定的這些信息,或者一直忽略它。是否應該省略已由該類的屬性指定的變量名稱中的信息?

Class Room { 

    private int roomNumber; 

    Room(int roomNumber) { 
    this.roomNumber = roomNumber; 
    } 

} 

Class Room { 

    private int number; 

    Room(int number) { 
    this.number = number; 
    } 

} 

我想它會如何看,如果你願意room.getRoomNumber()或room.getNumber();並且這在大多數時候會更有意義。

+1

其他類型的數字可能嗎?例如,牀的數量? – Stewart 2014-12-05 12:59:11

+0

好點。是的,一個房間也可以存放多張牀位。 – Joop 2014-12-05 13:01:06

+1

你應該減少這種冗餘,但你的榜樣是很好的選擇:「房間號碼」是一個非常知名的概念,而「號碼」是這樣一個無名字。在這裏使用縮寫「no」/「nr」可能更適合某些人的口味。一串更清晰(「房間013」,「12A房間」)。 – 2014-12-05 13:02:26

回答

3

(歡迎來到slowy的哲學編程課)

getNumber()聽起來沒問題。但是當房間還有十個屬性時它看上去如何?它如何尋找其他人?如果您的僱員類型是僱員編號,而預訂編號是預訂編號,那該怎麼辦?企業如何談論它?如何爲這個屬性命名一個web-gui的標籤?

請記住:

1)大部分的時間,最好是在某種程度上名稱的方法和變量,因此,它更容易理解。如果你命名一些東西,試着命名它,所以你不必評論它。如果這個變量比你的24英寸寬的屏幕tft長,那麼有些東西可怕地錯了,在你的情況下,我會說,getNumber()會返回房間號,只是爲了使它清楚。

2)一致性:如果業務正在討論房間號碼,則將其命名爲房間號碼,從成員變量,方法到表格列,如果可能的話,它使得一切都變得簡單,包括諸如「readRoomByRoomNumber ()「而不是」readRoomByNumber()「。

3)變量的命名:同時聲明」房間=新房間()「而不是」房間r =新房間()「,所以最後:」 room.getRoomNumber「比」r.getNumber()「更容易閱讀;-)

希望這會有所幫助, 問候, slowd

4

如果房間有其他數字屬性,則使變量的名稱更具體。如果房間號碼是唯一的數字屬性,我認爲room.getNumber()就足夠了。

相關問題