我想知道設計對象刪除的最佳方法,並觸發刪除許多相關對象。用於刪除具有許多相關對象的對象的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