我有一個困境,我不知道最好的方式來開始解決它。爪哇/春天:觀看豆
我正在使用舊的代碼庫工作。一些域對象(和它們後面的數據庫表)沒有太大意義。例如,deleted
被存儲爲long
,age
被存儲爲String
等等,我已經能夠很好地工作。在我看來,可以說if (deleted == 1)...
。但是有一些具體的業務邏輯通過將其納入視圖而導致維護問題。這裏有一個例子:
String title = null;
if (obj.getTitle != null) {
title = obj.getTitle();
} else {
title = obj.getName() + " - " + obj.getCategory();
}
我真的很想有一個「視圖bean」裏這個業務邏輯和合法的奇特得到妥善解決,並存儲,這樣我可以在多個視圖中使用它,但然後改變它在一個地方。如果我有一個Product
POJO,然後我ProductViewBean
,作爲一個例子,我會做這樣的事情:
productViewBean.setDeleted(product.getDeleted() == 1);
productViewBean.setTitle(product.getTitle() != null ? product.getTitle() : product.getName() + " - " + product.getCategory());
我的問題是,我應該在哪裏做呢?我是否應該注入manager
(注入適當daos
)注入我的controller
並返回我的「視圖bean」?或者我對這一切都錯了,可以有更好的方法嗎?
在此先感謝
(注:據我瞭解,底層結構是真正的問題,但它超出了我的管轄範圍在這一點上改變太多的項目中使用這些域對象,甚至如果我沒有乾淨。建立db/domain對象(所以deleted
是boolean
等)我仍然留下不可避免的業務邏輯(如果!標題,然後'構建其他組件的標題'),我不會在數據層中就像封裝在一個地方,以便控制器或視圖都不必擔心它,並且可以在多個控制器/視圖中使用它。我恰好處於可以編寫高效且可維護,並且甚至可以創建一個很好的層來緩解cl在未來的這些領域對象的eanup。)