gpt4 book ai didi

java - 使得以后可以轻松更改接口(interface)的实现

转载 作者:行者123 更新时间:2023-12-01 16:36:13 25 4
gpt4 key购买 nike

因此,在java中初始化接口(interface)(例如集合或列表)的方法是创建实现它的类的实例,例如:

Collection<Object> moo = new ArrayList();

如果我想稍后在代码中指定实现,我会考虑通过创建另一个类来实现,例如:

class ListList extends ArrayList{

}

然后用

初始化变量
Collection<Object> moo = new ListList();

如果我想稍后更改实现,所需要做的就是更改 ListList 扩展的内容。

所以,问题是..是否有更好的方法来做到这一点(我仍然觉得我对此类事情缺乏经验)。

最佳答案

is there a better way of doing this

是:使用工厂方法:

public static Collection<Object> createCollection() {
return new ArrayList<Object>(); // change this later, if need be
}

然后,调用工厂而不是实例化:

Collection<Object> moo = createCollection();

您使用“虚拟”子类的建议可能看起来很有吸引力,但这种对继承的滥用必然会导致以后的痛苦和折磨。你真的不想这样做。

关于java - 使得以后可以轻松更改接口(interface)的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8719573/

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