c# – 它是哪种设计模式?无法识别

我有一种情况,特别是我必须调用我的方法

订购.这出现在多个地方,所以我想知道是否有一些我看不到的模式.

现在在每一个这样的情况下,我都准备阶段,我根据前提条件执行一些代码,一个行为阶段(我修改我的数据)并保存我将它保存到数据库的阶段.
我现在有这个:

accessRightsService.Shift(document, userRole);
updateService.ApplyChanges(document, newData);
documentRepository.Update(document);

我在考虑像myService.WrapOperation(doc,d => {})之类的东西,它先调用prepare,然后执行动作,然后将结果保存到数据库.

那么,它是一种模式 – 如果是,那是哪一种?

对我来说看起来不像模板方法或装饰器

最佳答案 这与Builder模式非常相似.即使构建器模式声明它用于类实例化,这也可以应用于方法调用.

http://www.blackwasp.co.uk/Builder.aspx

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; }
}
点赞