我想知道设计删除对象的最佳方法,触发器删除许多依赖对象。
这是一个例子。有一个雇主班。删除雇主时,将删除其所有工作,发票。删除作业时,也会删除其类别选择。等等。因此,您可以看到删除Employer会触发更多对象的删除。问题是我必须将删除依赖对象所需的许多参数传递给Employer类中的delete方法。
这是一个简化的例子。想象一下主要的课程。删除主对象时,也必须删除对象Dep1,Dep2。删除Dep1时,也必须删除Dep11。如果删除方法如下所示:Dep1.delete(arg1),Dep2.delete(arg2),Dep11.delete(arg3),则Main上的delete方法必须如下所示:Main.delete(arg1,arg2,arg3) 。你看?更多的对象依赖于Main - 删除需要更多的参数。
我还必须指出,我有兴趣从数据库中删除,即删除其“业务逻辑”意义。我甚至没有在删除方法中取消设置“已删除”对象。
我考虑过哪些选项:
答案 0 :(得分:1)
如果要将参数传递给删除功能,则表示您犯了错误。
您调用删除功能的每个对象应该能够识别它是其父项的其他对象。
我强调 object 因为听起来你是从关系的角度来看这个。
答案 1 :(得分:0)
尝试以这样的方式使用Composition:一旦你使员工参考更少,其他人将自动引用更少....
其他方法是获取嵌套类的帮助,如果最顶层的封装类将获得 未引用的其他也将自动获取未引用的...(但请确保你没有在其他类中提取嵌套类(比如你的内部类)的引用。)
答案 2 :(得分:0)
在我的工作中,我不需要编写很多代码来删除,所以请大家多听一些。查看这些对象/记录的创建方式可能会有所帮助,并以相同的方式处理删除。例如,如果创建逻辑是这样的:
可能删除逻辑应该如下所示:
只要实体以一致的方式创建,以相反的顺序删除它们也应该证明是一致的。