Java 选择工厂方法模式来实现服务的设计动机是什么?

Java 选择工厂方法模式来实现服务的设计动机是什么?,java,Java,我试图理解提供方法newFixedThreadPool(int)而不是可以使用new实例化的类(类似于newFixedThreadPool)背后的原理 换句话说,他们为什么选择将类封装在执行器中?好吧,这在api中是一种非常常见的样式,例如集合,数组,路径,文件等等。我认为它更多地与api的设计有关。我认为其基本原理是,api提供了“实用程序类”,它是最常见用例的工厂方法集合,而不是要求您实例化、配置和使用新对象。 我认为这种模式有一些优点: 它允许您(通常)用一行程序完成常见任务 它可以防止

我试图理解提供方法
newFixedThreadPool(int)
而不是可以使用
new
实例化的类(类似于newFixedThreadPool)背后的原理


换句话说,他们为什么选择将类封装在
执行器
中?

好吧,这在api中是一种非常常见的样式,例如
集合
数组
路径
文件
等等。我认为它更多地与api的设计有关。我认为其基本原理是,api提供了“实用程序类”,它是最常见用例的工厂方法集合,而不是要求您实例化、配置和使用新对象。 我认为这种模式有一些优点:

  • 它允许您(通常)用一行程序完成常见任务
  • 它可以防止您误用/错误配置对象
  • 它允许API向用户隐藏实例化细节,从而支持将来的优化、重构等

好吧,这是api中非常常见的样式,请参见例如
集合
数组
路径
文件
等等。我认为它更多地与api的设计有关。我认为其基本原理是,api提供了“实用程序类”,它是最常见用例的工厂方法集合,而不是要求您实例化、配置和使用新对象。 我认为这种模式有一些优点:

  • 它允许您(通常)用一行程序完成常见任务
  • 它可以防止您误用/错误配置对象
  • 它允许API向用户隐藏实例化细节,从而支持将来的优化、重构等

明白了。这可能是由于创建
ThreadPoolExecutor
实例的复杂性。明白了。这可能是由于创建
ThreadPoolExecutor
实例的复杂性造成的。