我想知道在我調用它時如何檢查例程的先決條件,以便它可以執行或通知其不可執行。語言是C#。檢查程序是否可以在C#中運行(並運行它)的可能方法
我正在實現一個帶有Controller對象,DataContainer對象和一些Task對象的Pipeline design-pattern。當控制器要求任務執行時,每項任務的責任是檢查其適用性。具體來說,它應該檢查DataContainer對象的可用數據。
我可以想像一些方法來做到這一點在Python:
#
if Task.can_run():
Task.run()
else:
Task.notify_controller()
#
if Controller.check_runnability(Task):
Task.run()
else:
Controller.do_something_else()
# Task.can_run() throws exception instead of returning boolean:
try:
Task.can_run();
except:
Controller.do_something_else() # or maybe Task.notify_controller()
else:
Task.run()
# not sure about syntax for the following assertion, but you get the idea
assert (Task.can_run(), Task.notify_controller())
Task.run()
我想知道些什麼(並沒有與谷歌找到)是「規範」 /最常見的/「右」只有滿足某些先決條件時才能啓動例程的C#習慣用法。
控制器意味着如何處理一個說不能運行的任務? – 2013-02-22 14:58:17
@TonyHopkinson它將取決於任務或甚至控制器範圍之外的更高級別的條件。例如,控制器可能會調用另一個使用不同算法的任務,或者直接向GUI(最終導致)提示某些(以及哪個)先決條件不適用的信息。 – heltonbiker 2013-02-22 17:02:17
鑑於我想eijther有控制器調用canrun,或者只是傳遞無法從運行回跑。看起來沒有任何價值讓它變得更加複雜。 – 2013-02-22 17:19:37