我想知道在调用例程时如何检查例程的先决条件,以便它可以执行或通知其不可执行性。语言是 C#。
我正在使用一个 Controller 对象、一个 DataContainer 对象和一些 Task 对象来实现一个Pipeline 设计模式。当控制器要求执行任务时,每个任务都有责任检查其适用性。具体来说,它应该检查 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()
我想知道(但在 Google 中没有找到)是“规范”/最常见/“正确”的 C# 习惯用法,仅在满足某些先决条件时才开始例程。