Ton*_*ion 9 c# design-patterns class function
我目前的项目中有几个课程,需要验证电子邮件/网站地址.这样做的方法都是一样的.
我想知道实现这个的最佳方法是什么,所以我不需要将这些方法复制到任何地方?
类本身不一定相关,它们只有那些共同的验证方法.
Mar*_*ell 17
如何添加界面和使用扩展方法?
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 */ }
}
Run Code Online (Sandbox Code Playgroud)
那样:
您可能希望将所有验证代码放入Validator类中,然后在需要验证的任何地方使用该类.可能通过单一方法访问验证Validate(object Something).我认为这被称为"组合"(就设计模式而言).
稍后,您可以使用Validator的子类,这些子类可能更具体或可以进行不同类型的验证.
您还可以让所有需要验证的类扩展基类或抽象类,其中包含90%的验证.
听起来你只需要一个带静态方法的静态类
public static class Utilities{
public static bool validEmail(string email)
{
//Your code here
}
}
Run Code Online (Sandbox Code Playgroud)