当前位置:  开发笔记 > 编程语言 > 正文

具有相同方法的多个类 - 最佳模式

如何解决《具有相同方法的多个类-最佳模式》经验,为你挑选了3个好方法。

我目前的项目中有几个课程,需要验证电子邮件/网站地址.这样做的方法都是一样的.

我想知道实现这个的最佳方法是什么,所以我不需要将这些方法复制到任何地方?

类本身不一定相关,它们只有那些共同的验证方法.



1> Marc Gravell..:

如何添加界面和使用扩展方法?

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 */ }
}

那样:

没有不必要的继承

没有重复


看起来像扩展方法滥用给我.为什么你需要所有需要电子邮件验证的类来实现一些(空的)接口并在其上做一些扩展方法魔术,如果他们可以简单地调用EmailUtils类的静态方法(或者创建一个EmailValidator对象并调用Validate方法)在上面)?看起来他似乎只需要类中的电子邮件验证代码 - 这不应该要求实现接口.

2> FrustratedWi..:

您可能希望将所有验证代码放入Validator类中,然后在需要验证的任何地方使用该类.可能通过单一方法访问验证Validate(object Something).我认为这被称为"组合"(就设计模式而言).

稍后,您可以使用Validator的子类,这些子类可能更具体或可以进行不同类型的验证.

您还可以让所有需要验证的类扩展基类或抽象类,其中包含90%的验证.



3> juharr..:

听起来你只需要一个带静态方法的静态类

public static class Utilities{
    public static bool validEmail(string email)
    {
        //Your code here
    }
}

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有