我正在研究一個應用程序,其中絕大多數功能是數據庫表和視圖之間的一對一映射。這是一個純粹的CRUD應用程序。在大多數CRUD應用程序中繞過業務層可以嗎?
但是,有一些涉及一些業務規則的情況。例如,如果用戶正在創建「受限測試」,則需要輸入公司信息,但如果它不是「受限測試」,則公司信息是可選的。
在這些情況下,視圖是否可以直接使用沒有中間業務對象的數據庫對象,並僅針對涉及業務規則的情況實現業務對象?
作爲一個側面的問題,我使用了一個ORM框架,它不允許我在實體字段上實現getter/setter代碼。因此,這些實體對象上的所有字段基本上都是公共的,並且可以隨意更改。這是否足以爲每個實體類創建一個「業務對象」來保護像PK這樣的不變量?
編輯:
我發現馬克塞曼一個非常有用的職位,這似乎回答一半我的問題非常好。 http://blog.ploeh.dk/2012/02/09/IsLayeringWorththeMapping/
如果我需要在時間到來時重構,我沒有看到問題,但是,您提供了以前從未發生過的洞察。我特別喜歡關於業務需求的點滴,並且能夠說服業務部門有更多時間和金錢進行重構。謝謝你的評論。 – jrahhali