gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 12:41:51 25 4
gpt4 key购买 nike

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

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

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

我在考虑像 myService.WrapOperation(doc, d => {}) 这样的东西,它会先调用准备,然后执行操作,然后将结果保存到数据库。

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

在我看来不像模板方法或装饰器

最佳答案

这与 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; }
}

关于c# - 是哪种设计模式?无法识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36152094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com