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

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

概述我有一种情况,特别是我必须调用我的方法 订购.这出现在多个地方,所以我想知道是否有一些我看不到的模式. 现在在每一个这样的情况下,我都准备阶段,我根据前提条件执行一些代码,一个行为阶段(我修改我的数据)并保存我将它保存到数据库的阶段. 我现在有这个: accessRightsService.Shift(document, userRole);updateService.ApplyChanges( 我有一种情况,特别是我必须调用我的方法
订购.这出现在多个地方,所以我想知道是否有一些我看不到的模式.

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

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; }}
总结

以上是内存溢出为你收集整理的c# – 它是哪种设计模式?无法识别全部内容,希望文章能够帮你解决c# – 它是哪种设计模式?无法识别所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1232026.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存