为什么new关键字在java中被认为是高度耦合的?

sg24os4d  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(420)

我在java上工作了一段时间。我看到有太多关于解耦对象的讨论。我看到他们说“新”关键字被认为是高度耦合的象征。我到现在还没有得到任何答案。有人能解释一下吗?

jv4diomz

jv4diomz1#

new 创建特定类的示例。所以当你使用 new 您正在创建正在创建的类和创建它的代码之间的耦合。例子:

List<String> strings = new ArrayList<>();

创建的示例 ArrayList ,如果不需要硬连接代码来使用 List 应用程序编程接口。
注意java new 不允许将类名设为参数。即使使用泛型类型参数也不行。
另一种方法是使用工厂函数或对象,或者使用依赖注入将需要类示例的代码与创建类的过程解耦(或者传来传去 Class 对象作为参数,并使用反射创建示例。)

相关问题