gpt4 book ai didi

java - 窄型还是加宽型?在我的公共(public) API 中返回什么

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:16:40 24 4
gpt4 key购买 nike

<分区>

最近我和我的 friend 讨论了创建公共(public) API 的良好做法。当我们谈到返回类型时,我们开始争论。他告诉我只返回加宽类型,例如 ArrayList 的 List insted。但在我看来,这完全取决于我们试图解决的问题。我看不出有什么问题:

ArrayList foo();

当我想说“嘿,我给你 ArrayList 只是为了确保你可以在 O(1) 时间内访问元素”

在下一个示例中,假设在方法签名或文档中没有关于返回哪种图形或使用哪种表示的信息

图 foo();

现在怎么办?我可能想知道这个图是有向的还是无向的,基于邻接表或邻接矩阵。最糟糕的是它可能导致如下代码:

Graph graph = foo();
if(graph instanceof DirectedGraph)
//code

这违反了里氏替换原则

你有什么想法?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com