c# – 它是哪种设计模式?无法识别
发布时间:2020-12-15 22:28:44 所属栏目:百科 来源:网络整理
导读:我有一种情况,特别是我必须调用我的方法 订购.这出现在多个地方,所以我想知道是否有一些我看不到的模式. 现在在每一个这样的情况下,我都准备阶段,我根据前提条件执行一些代码,一个行为阶段(我修改我的数据)并保存我将它保存到数据库的阶段. 我现在有这个: a
我有一种情况,特别是我必须调用我的方法
订购.这出现在多个地方,所以我想知道是否有一些我看不到的模式. 现在在每一个这样的情况下,我都准备阶段,我根据前提条件执行一些代码,一个行为阶段(我修改我的数据)并保存我将它保存到数据库的阶段. 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; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |