首页 新闻 会员 周边

返回接口比返回类有什么好处?

0
悬赏园豆:10 [已解决问题] 解决于 2020-10-12 09:26

看到很多项目里都是用接口代替具体类,这样有什么好处?
举例比如:
接口
public interface IDemo
{
string Name { get; set; }

    int ID { get; set; }
}

具体类

public class ADemo:IDemo
{
public string Name { get; set; }

    public int ID { get; set; }
}

返回 却用接口
public static IDemo Get(String A,int B)

这个是开源项目中的代码

 /// <summary>
    /// 获取实体信息
    /// </summary>
    /// <returns></returns>
    public static IEntityDescriptor Get(Type entityType)
    {
        var entity = List.FirstOrDefault(m => m.EntityType == entityType);
        if (entity == null)
        {
            throw new ArgumentNullException(nameof(entityType), "实体不存在");
        }

        return entity;
    }

为啥要这样做?

C#
剧里局外的主页 剧里局外 | 初学一级 | 园豆:3
提问于:2020-10-11 18:09

建议改进一下排版,支持 markdown 语法

dudu 3年前
< >
分享
最佳答案
0
收获园豆:10
山水中华 | 菜鸟二级 |园豆:255 | 2020-10-12 09:25
其他回答(4)
0

就是方便替换类,其他没任何好处。

56180825 | 园豆:1756 (小虾三级) | 2020-10-11 18:43
1

好处坏处是相对的,比如dynamic,好处是没有约束灵活,坏处就是灵活带来的排除难,管理没有约束。

所以你按照这方面想就行了。

花飘水流兮 | 园豆:13560 (专家六级) | 2020-10-11 20:36
0

只关心可以干什么,而不关心具体怎么实现。比如以后内部实现变了,返回的具体实现也变了,但是在调用的地方不用做任何改动

通信的搞程序 | 园豆:1747 (小虾三级) | 2020-10-11 20:58
1

这不是一种最好的设计方式,最好的设计方式是:返回值越小越好(越具体越好),参数越大越好(越抽象越好)。

会长 | 园豆:12401 (专家六级) | 2020-10-12 09:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册