这是问题所在。我有一个业务对象,它有一个名为RegisterDate
. 像往常一样的业务规则说,一旦设置,就无法更改。
我首先想到的是将此字段实现为属性并将设置器定义为受保护的,以防止用户在创建对象后使用(和设置)它。但是经过一段时间的思考,我让我在属性可访问性规则中偷偷摸摸了一条业务规则。
我的第二个想法是让属性设置器公开,在设置时实现一个异常,这使得业务规则非常明确。将有一个测试用例,期望该属性在每次有人尝试设置它时抛出异常。
好吧,但这是避免行为的很多样板,为什么不毕竟保护事物,避免在代码的其他部分甚至滥用?但是后来我想知道,如果另一个开发人员不小心更改了属性可访问性并再次将其公开,并且业务对象的用户开始使用该字段违反业务规则怎么办?
这种情况的最佳方法是什么?你会如何解决这个问题?