我有两个不相关的类
public class ManagedType{
private string id;
private string name;
private string description;
private string version;
private string Properties;
private List<string> baseTypesl
}
public class OtherClass{
private string id;
private string name;
private string description;
private string target;
private string sources;
private List<string> relationships;
}
因此,如果我将id、name、description抽象到一个新的基类中并让它扩展它,是否建议这样做。
我的观点是,既然它们是不相关的,我们就不应该。而且,我们也不应该只为属性(除非它们是相关的)而扩展类,而应该只为常见的行为(这里没有)扩展类。请让我知道你对同样的看法。
发布于 2017-05-31 11:11:01
你的理解是正确的。除非他们不属于“is -a”关系,否则就没有必要把他们置于一个超级阶级之下。
但是,只有从功能角度来看,这种“is -a”关系才会出现。如果您正在构建一个服务--类,如Serializable、IEnumerable等,您可能会认为带一个带有3个属性的接口(我可以看到ID、名称和描述)是常见的。只有从技术服务的角度来看,这种关系才适用。但是,如果从功能的角度来看,不应该带抽象类。
例如,
public interface Iloggable
{
public string id {get; set;} public
string name {get; set;}
public string description {get; set;}
}
public class ManagedType: Iloggable
{
private string _id, _name,_description;
public string id
{
get
{return _id;}
set {_id = value; }
}
.....
}
https://stackoverflow.com/questions/44281170
复制相似问题