首页 > 解决方案 > 如何为调用方法制定特定顺序?

问题描述

例如,我有一个带有接口的类,它的方法很少。始终仅在类中以特定顺序调用方法的最佳方法是什么?

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

}

标签: c#classinterface

解决方案


看看模板方法设计模式

模板方法设计模式的目的是在操作中定义算法的骨架,将一些步骤推迟到客户端子类。模板方法让子类在不改变算法结构的情况下重新定义算法的某些步骤。

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();

推荐阅读