C# 它是哪种设计模式?Can';我认不出

C# 它是哪种设计模式?Can';我认不出,c#,.net,design-patterns,C#,.net,Design Patterns,我有一种情况,我必须特别调用我的方法 秩序。这出现在很多地方,所以我想知道是否有一些模式我看不到 现在,在每种情况下,我都有一个prepare stage,在那里我根据先决条件执行一些代码,一个act stage(在那里我修改我的数据)和save stage(在那里我将数据保存到数据库)。 我现在有这个: accessRightsService.Shift(document, userRole); updateService.ApplyChanges(document, newData); do

我有一种情况,我必须特别调用我的方法 秩序。这出现在很多地方,所以我想知道是否有一些模式我看不到

现在,在每种情况下,我都有一个prepare stage,在那里我根据先决条件执行一些代码,一个act stage(在那里我修改我的数据)和save stage(在那里我将数据保存到数据库)。 我现在有这个:

accessRightsService.Shift(document, userRole);
updateService.ApplyChanges(document, newData);
documentRepository.Update(document);
我在考虑类似于
myService.WrapOperation(doc,d=>{})
的东西,它将首先调用prepare,然后执行操作,然后将结果保存到数据库中

那么,这是一种模式吗?如果是,是哪种模式?


在我看来,它不像模板方法或装饰器,这与构建器模式非常相似。即使构建器模式声明它用于类实例化,这也可以应用于方法调用


或者你可以提供一个代码示例,不要降低它们的有用性,但是:世界并不是完全由设计模式组成的。@TaW这个示例代码非常糟糕(tm),因为存在一个秘密的时间耦合。仅仅通过检查方法签名根本无法知道它们彼此依赖,并且必须按特定顺序调用它们。这里需要一些重构。您是否只是遇到了可以提取到方法中的重复代码?这看起来类似于模板方法,只是在这里您可以在客户机代码中定义步骤顺序
public class Director
{
    public void Construct(Builder builder)
    {
        builder.BuildPart1();
        builder.BuildPart2();
        builder.BuildPart3();
    }
}


public abstract class Builder
{
    public abstract void BuildPart1();
    public abstract void BuildPart2();
    public abstract void BuildPart3();
    public abstract Product GetProduct();
}


public class ConcreteBuilder : Builder
{
    private Product _product = new Product();

    public override void BuildPart1()
    {
        _product.Part1 = "Part 1";
    }

    public override void BuildPart2()
    {
        _product.Part2 = "Part 2";
    }

    public override void BuildPart3()
    {
        _product.Part3 = "Part 3";
    }

    public override Product GetProduct()
    {
        return _product;
    }
}


public class Product
{
    public string Part1 { get; set; }
    public string Part2 { get; set; }
    public string Part3 { get; set; }
}