首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >继承设计理念

继承设计理念
EN

Stack Overflow用户
提问于 2017-05-31 09:39:56
回答 1查看 38关注 0票数 0

我有两个不相关的类

代码语言:javascript
运行
复制
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抽象到一个新的基类中并让它扩展它,是否建议这样做。

我的观点是,既然它们是不相关的,我们就不应该。而且,我们也不应该只为属性(除非它们是相关的)而扩展类,而应该只为常见的行为(这里没有)扩展类。请让我知道你对同样的看法。

EN

回答 1

Stack Overflow用户

发布于 2017-05-31 11:11:01

你的理解是正确的。除非他们不属于“is -a”关系,否则就没有必要把他们置于一个超级阶级之下。

但是,只有从功能角度来看,这种“is -a”关系才会出现。如果您正在构建一个服务--类,如Serializable、IEnumerable等,您可能会认为带一个带有3个属性的接口(我可以看到ID、名称和描述)是常见的。只有从技术服务的角度来看,这种关系才适用。但是,如果从功能的角度来看,不应该带抽象类。

例如,

代码语言:javascript
运行
复制
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; } 
    }   
    ..... 
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44281170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档