gpt4 book ai didi

c# - 我的功能是否违反了 SRP 或其他最佳实践?

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

我有以下代码段,该函数将获取对象列表(我称之为 Y 对象)并调用另一个方法将其转换为 X 对象。

public List<X> GetXObjects()
{
var yObjects= GetYObjects();
var transformer = new Transformer();
var xObjects = transformer.Transform(yObjects);
return xObjects;
}

当前的实现有效,但是,我觉得我的函数可能违反 SRP 或其他最佳实践。是否可以重构代码使其变得更好?

最佳答案

我将调用方法TransformObjects 并将转换器添加为参数,以便可以使用不同的转换器,并且每次调用该方法时转换器都不会初始化。 yObjects 也是如此。因此该方法的唯一职责是转换您的对象。

public List<X> TransformObjects(List<Y> yObjects, Transformer transformer)
{
var xObjects = transformer.Transform(yObjects);
return xObjects;
}

方法的调用:

var yObjects= _crmWrapper.GetActivitiesByOpportunities();
var transformer = new Transformer();
myTransformer.TransformObjects(yObjects, transformer);

如果您创建一个 ITransformer 接口(interface),那么通过交换转换器来增强您的代码会更容易。

关于c# - 我的功能是否违反了 SRP 或其他最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45139360/

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