我有几种方法具有folling结构:
public void doWhatever()
{
methodToPrepareEnvironment();
// do something
methodToResumeEnvironment();
}
Run Code Online (Sandbox Code Playgroud)
我所有的"doWhatever"类型方法都调用这些准备/恢复方法,所有这些方法都只调用了1个prepare和1个resume方法.是否有更好的方法来实现这一点,而无需在所有我的doWhatever方法的开头和结尾调用准备和恢复方法?我觉得我错过了一些非常基本的东西.请注意,doWhatever方法无法组合,它们每个都需要独立,每个方法都需要准备环境,完成一些任务然后恢复环境.
谢谢.
通过战略性地使用访问修饰符,您可以确保外部调用始终在方法调用之前和之后,几乎不重复,如下所示:
public void DoWhatever()
{
DoAction(DoingWhatever);
}
private void DoingWhatever()
{
// ...
}
private void DoAction(Action action)
{
methodToPrepareEnvironment();
action();
methodToResumeEnvironment();
}
Run Code Online (Sandbox Code Playgroud)
An Action是一个委托,表示没有返回值的方法.