重构自定义验证案例

时间:2016-03-31 14:35:03

标签: c# validation design-patterns

我有一个用于验证的类层次结构,我正处于一个我想重构的地方(如果可能且有用),使代码解耦。

    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));
     }
    }

根是共同的,区别在于我注入列表的类(规则)。 你觉得应该改变什么吗? 感谢

1 个答案:

答案 0 :(得分:1)

我不了解不同验证类的必要性

IValidables

为什么你没有一个通用的验证课程,其中包含一个根据你的需要填写的commands.txt列表。因此,对于每个不同的列表,它就像你有一个完全不同的验证类......它有意义吗?