我目前的项目中有几个课程,需要验证电子邮件/网站地址.这样做的方法都是一样的.
我想知道实现这个的最佳方法是什么,所以我不需要将这些方法复制到任何地方?
类本身不一定相关,它们只有那些共同的验证方法.
如何添加界面和使用扩展方法?
public interface IFoo { } public class A : IFoo {} public class B : IFoo {} public class C : IFoo {} public static class FooUtils { public static void Bar(this IFoo foo) { /* impl */ } }
那样:
没有不必要的继承
没有重复
您可能希望将所有验证代码放入Validator类中,然后在需要验证的任何地方使用该类.可能通过单一方法访问验证Validate(object Something)
.我认为这被称为"组合"(就设计模式而言).
稍后,您可以使用Validator的子类,这些子类可能更具体或可以进行不同类型的验证.
您还可以让所有需要验证的类扩展基类或抽象类,其中包含90%的验证.
听起来你只需要一个带静态方法的静态类
public static class Utilities{ public static bool validEmail(string email) { //Your code here } }