gpt4 book ai didi

c# - 代码可重用性 : how to refactor checks to be more readable and reusable, 职责分离?

转载 作者:行者123 更新时间:2023-11-30 15:29:42 25 4
gpt4 key购买 nike

<分区>

考虑以下检查。我可以在我的解决方案中找到 10 次相同的相同错误检查。

if (request == null)
throw GetFaultException("Request object is null");

现在考虑下一个:

if (model == null)
throw GetFaultException("Request model not well formed");

唯一改变的是错误消息和检查变量的名称。

重构的一部分已经完成,因为 GetFaultException 已经隐藏了复杂性并分离了职责。

我看到许多可能的进一步重构。就像使用 Monads , AOP , 事件 (?).

我认为真正最好的解决方案是让代码像在 MVC 模型中一样思考。

因此 if (condition) request == null then (it means) 没有指定强制参数 then (it means)特定消息需要异常

我在这种方法中看到的好处是,过程式编程使代码不言自明和无意识。相反,如果我引发一个 NullMandatoryParameterEvent,就会非常清楚为什么我要检查一个变量是否为 null 以及如果它为 null 我该怎么做。

问题是:您将如何重构这种检查(根据我定义的目标)?您是否认同这些目标?

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