gpt4 book ai didi

c# - 重构自定义验证案例

转载 作者:太空宇宙 更新时间:2023-11-03 12:48:48 25 4
gpt4 key购买 nike

我有一个用于验证的类层次结构,现在我想重构(如果可能和有用的话)让代码解耦。

    public class DefaultValidation : ValidationList
{
public DefaultValidation(Cutomer customer, Dto dto)
{
DefaultRepository repository = new DefaultRepository();

EntityBook entityBook = (EntityBook)repository.GetBookById(dto.IdBook);
this.Add(new BookMustBeValidValidation(entityBook));

EntityVideo entityVideo = (EntityVideo)repository.GetVideoById(dto.IdVideo);
this.Add(new VideoValidation(entityTask));
this.Add(new OtherNecessaryValidation(dto.OtherProperty));
}
}

此类是用于验证的具体类。我将所有规则添加到一个列表中,这样我就可以以类的形式添加各种类型的验证。

(我用了这个method,看起来很有趣)

当我添加另一个类似的类时,需要重构:

    public class SpecialValidation : ValidationList
{
public SpecialValidation(Cliente cliente, DtoRichiesta richiesta)
{
this.Add(new OtherNecessaryValidation(dto.OtherProperty));
this.Add(new SpecialAnotherOneValidation(dto.AnotherProperty));
}
}

根是相同的,不同之处在于我向列表中注入(inject)了哪些类(规则)。你认为应该改变什么吗?
谢谢

最佳答案

我不明白需要不同的验证类

DefaultValidation vs SpecialValidation

为什么你没有一个通用的验证类,其中包含一个根据你的需要填充的 IValidables 列表。因此,对于每个不同的列表,就好像您有一个完全不同的验证类……这有意义吗?

关于c# - 重构自定义验证案例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36336441/

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