我想知道设计对象删除的最佳方法,并触发删除许多相关对象。用于删除具有许多相关对象的对象的OOP设计
这里是一个例子。有一个雇主类。当雇主被删除时,其所有工作,发票都将被删除。当作业被删除时,其类别选择也会被删除。等等。因此,您可以看到在更多对象上删除Employer触发器删除。问题是我必须将删除依赖对象所需的许多参数传递给Employer类中的delete方法。
这里是一个简化的例子。想象一下班级的主。当一个主对象被删除时,对象Dep1,Dep2也必须被删除。当Dep1被删除时,Dep11也必须被删除。如果删除方法如下所示:Dep1.delete(arg1),Dep2.delete(arg2),Dep11.delete(arg3),则Main上的删除方法如下所示:Main.delete(arg1,arg2,arg3) 。你看?更多的对象依赖于主 - 更多的参数将需要删除。
我还必须指出,我有兴趣从数据库中删除,即删除其“业务逻辑”意义。我甚至没有在删除方法中取消“删除”对象。
我曾考虑哪些选项:
- 分组需要删除到一个单独的对象参数。我只是不明白所有这些参数如何分组。他们根本没有属于一起。例如,如果需要一个Invoice_searcher和Job_searcher - 为什么他们会一起在一个对象中?那可能是什么物体?
- 将雇主类中的删除方法中的依赖对象删除。在这种情况下,如果不显式调用子对象的删除方法,会使系统处于不一致的状态。我想避免这种情况。
对不起,没有回答你的问题,但Udi Dahan发表了一个关于术语“删除”的优秀博客:http://www.udidahan.com/2009/09/01/dont-delete-just-dont/ – Kane 2012-01-05 10:00:12
这就是一个有趣的观点,但并没有解决我的问题,并讨论“不删除”是在这个问题的背景下。 – 2012-01-05 10:10:34
删除相关对象需要什么样的参数? 'object.deleteYourself()'似乎是一个相当简单的指令,不需要任何其他输入。 – MrMisterMan 2012-01-05 10:17:30