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