我會說你的信息系統教授介紹是正確的。還有你的SE教授(假設他缺乏評論使他成爲逆向投資者)。根據您的要求和您正在使用的域,它們都是正確的。但沒有任何其他細節,很難爲你模擬這一點,我會傾向於你的CE教授所說的。記住你學到的所有有趣的小原則:KISS,DRY等,並將它們應用於你的問題。
如果Client
將永遠不可能有多個電話號碼,並且您的域中沒有其他實體需要電話號碼,那麼不需要單獨的Telephone
類。在現實世界中,如果您的要求很模糊,請從您的客戶那裏瞭解更多信息。
如果有人在路上決定Client
s可以接受多個電話號碼,或者其他實體被引入到您的域中需要電話號碼,這是一個相當容易的重構來完成。
因此,考慮到這一點,假設您的Client
有一個單獨的Address
類,其中包含電話號碼。也許Address
課程被其他課程重新使用,可能是Invoice
或Shipment
,其中Address
可以在兩種情況下共享或應用。在這個例子中,你可能想要Address
(Telephone
)是它自己的類。
在你的例子中,Telephone
可能有點太設計了。如果它有很多屬性(AreaCode
,InternationalPrefix
,Number
等),但是如果Client
只需要一個名爲Telephone
的字符串值,那麼用戶只需鍵入以下內容即可重用:參考,那麼它可能沒有意義成爲它自己的類。