gpt4 book ai didi

c# - 默认策略。策略模式 C#

转载 作者:行者123 更新时间:2023-12-03 03:02:02 25 4
gpt4 key购买 nike

像下面的代码一样使用默认策略是否正常:

public abstract class ClContext
{
protected sealed class InitialAlgorithm : IClAlgorithm
{
public void Initialize()
{
return;
}
public void Execute()
{
return;
}
public Byte[] Result
{
get { return new Byte[1]{0}; }
}
}
protected IClAlgorithm algorithm;

protected ClContext(IClAlgorithm algorithm = null)
{
this.algorithm = algorithm ?? new ClContext.InitialAlgorithm();
}

public void Execute()
{
this.algorithm.Execute();
}
}

提供自动实现的属性是否也很正常:

public IClAlgorithm Algorithm 
{
get;
set;
}

我只是从设计的角度好奇它是否可以接受。

谢谢!

最佳答案

我无法想象这种设计实际上有用的场景 - 您的类取决于通过其构造函数传入的策略,并且稍后可以通过属性 setter 进行更改。不传递依赖项不应允许调用者创建您的类的实例。

如果“默认”策略实际上在做一些有用的事情,那么您应该只提供它,即使这样,我也不会将它们捆绑在一起,而是使用工厂方法使用该策略创建您的类。

关于c# - 默认策略。策略模式 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6976182/

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