【发布时间】:2014-12-15 23:13:03
【问题描述】:
我有两个独立的类,并且都包含相同的方法名称(启动、验证等)。
但是,两个类之间的方法所期望的参数是不同的。
例如...我有类似的东西:
public static class A
{
public static void Start(string a, string b) ...implementation inside of it
public static void Validate (string a, FileInfo b) ...implementation inside of it
}
public static class B
{
public static void Start (string a) ...implementation inside of it
public static void Validate(string a, string h FileInfo b, string[] c) ...implementation inside of it
}
有没有办法用设计观点中更好的代码来重构它?这两种方法也共享一些通用代码。
我试图创建一个接口(我必须从两个类中删除静态),但最后它是一团糟,因为我必须在 A 类和 B 类中实现 4 个方法中的每一个,这不是什么我在寻找。
如果我能对此有所了解,那就太好了。我需要一个接口吗?也许和抽象类?还有什么?
【问题讨论】:
-
要回答这个问题,我们需要更多关于类在语义上应该做什么的信息。也许有一种方法可以使参数相等;也许功能的某些部分可以提取到另一个类中。这取决于。
-
我同意@valenterry:我不会仅仅根据您提供的信息进行任何重构。从表面上看,这两个类只是通过名称相同但参数不同的方法相关联!这些方法可能彼此无关。它们的任何共同点都是如何实施的问题。我可能会重构实现,但我不会重构公共接口。
标签: c# interface refactoring abstract-class