我在建模實體時有點矛盾。@瞬間vs裝飾者
我們有一個具有6-8個實例變量的實體。其中兩個實際上並沒有保存在數據庫中,但僅用於做一些驗證或在UI中顯示。因此,當我們獲取實體時,我們用一些外部查找來填充。
現在,根據我的同事之一,其更好的做法是使用裝飾器代替使用@Transient。我在某種程度上同意。因爲它闡明瞭DB代表的實際模型。
但它會增加對一些案件的補充樣板(如業務我可以命名實體MyEntityBO,但如果我用它的UI ......再次名稱將是有點混亂。
我的問題是,什麼場景它更好地使用@Transient而不是裝飾器,反之亦然
無論其他字段或方法。出於這個原因,您不應該直接從UI中使用實體。您應該有一個特定於視圖的模型,它是專門爲該視圖設計的模型的表示。該視圖模型屬於用戶界面。視圖模型可以通過合成封裝原始模型,但這本身不是裝飾器。這是除非你的應用程序是簡單的CRUD,在這種情況下只需要使用@Transient。 – plalx
你可以顯示示例代碼來給出一個想法如何在這裏添加裝飾模式? –
@plalx在我的情況下,它並不總是用戶界面。對象也用於其他驗證。組合似乎更好地處理這種情況。創建2個對象。 ObjectUI,ObjectBO。所以只有用戶界面需要的吸氣劑纔會在那裏。所以不小心,這些東西不應該被用戶界面看到,但應該存在於主要實體中,例如ID /密碼可以隱藏。 (再次,這裏的反指向是「@IgnoreJson」:)我試圖理解「@Transient」在哪些情況下仍然可行。如果像你說的應用程序只是CRUD,那麼只需要「@Transient」 –