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

Why new keyword considered as high coupling in Java?

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

那么 new 创建特定 class 的实例。因此,每当您使用 new 时,您都会在正在创建的 class 和创建它的代码之间创建耦合。示例:

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

创建 ArrayList 的实例,如果您 不需要 硬连接代码以使用 List API.

请注意 Java new 不允许您将 class 名称作为参数。甚至没有泛型类型参数。

另一种方法是使用工厂函数或对象,或使用依赖注入将需要 class 实例的代码与创建它的过程分离。 (或者传递 Class 对象作为参数并使用反射创建实例。)