这可能是一个理论上的问题,让我试着用一个例子来解释它:
Cow
和一个POJO Calving
Cow
都有一个Calving
s 在代码中检查每个Calving需要至少7个月的窗口,这意味着,如果添加了新的Calving
现在,我想知道在哪里放置方法验证新添加的产犊最佳做法。我有两种可能的解决方案:
选项1:
我在Cow课程中制作了以下方法:
private Calving getPreviousCalving(Date calvingDate)
private Calving getNextCalving(Date calvingDate)
public boolean isCalvingIn7MonthWindow(Date dateToCheck)
选项2:
我在Cow课程中制作了以下方法:
public Calving getPreviousCalving(Date calvingDate)
public Calving getNextCalving(Date calvingDate)
这是我的小牛课程中的一个:
public boolean isIn7MonthWindow(Calving calvingBefore, Calving calvingAfter, Date dateToCheck)
我怀疑的原因是isIn7MonthWindow
方法提供了有关潜在的新产犊(选项2)的信息,而不是关于奶牛的信息,所以逻辑上它应该在产犊类中没有?但是,选项1更清晰,更容易访问所有必要的数据来进行检查(因为Cow有一个Calving列表)。
我希望这不是太广泛而且不是基于意见的。有什么想法吗?