c# - 如何为调用方法制定特定顺序?
问题描述
例如,我有一个带有接口的类,它的方法很少。始终仅在类中以特定顺序调用方法的最佳方法是什么?
public class SomeClass
{
void Start(ISomeInterface testClass)
{
testClass.Method1();
testClass.Method2();
testClass.Method3();
}
}
public interface ISomeInterface
{
void Method1();//should run 2nd
void Method2();// 1st
void Method3();// 3rd
}
解决方案
看看模板方法设计模式
模板方法设计模式的目的是在操作中定义算法的骨架,将一些步骤推迟到客户端子类。模板方法让子类在不改变算法结构的情况下重新定义算法的某些步骤。
abstract class SomeClass : ISomeInterface
{
public abstract void Method1();
public abstract void Method2();
public abstract void Method3();
// The template method
public void Start()
{
testClass.Method1();
testClass.Method2();
testClass.Method3();
}
}
class ImplementationClass : SomeClass
{
public override void Method1()
{
...
}
public override void Method2()
{
...
}
public override void Method3()
{
...
}
}
// Usage
var implementationClass = new ImplementationClass();
implementationClass.Start();
推荐阅读
- node.js - 模型“Task”的路径“_listId”中的值“undefined”转换为 ObjectId 失败
- html - 如何从屏幕阅读器中隐藏装饰图像属性中的链接?
- python - 将 python 列表加入一个漂亮的多行字符串
- google-apps-script - Apps 脚本:需要将具有超链接的唯一记录从一个选项卡附加到另一个选项卡
- image-processing - 旋转轮廓像素
- java - 由于测试依赖关系,Gradle Spring Cloud Stream 项目未构建
- r-markdown - 在不属于列表的段落之后继续枚举
- python - 熊猫系列 - groupby 并采取累积最近的非空
- javascript - 如何重用showed.bs.collapase 函数?
- python - 使用 django 通道从 python 3.6 升级到 python 3.7 时出现 SynchronousOnlyOperation 错误