【问题标题】:Task.Factory and factory patternTask.Factory 和工厂模式
【发布时间】:2019-09-20 08:30:12
【问题描述】:
工厂方法模式主要用于/建议在创建属于子类的对象时使用(也应该有多个子类)。来自dofactory 的一个这样的定义:
定义一个用于创建对象的接口,但让子类决定实例化哪个类。工厂方法允许类将实例化推迟到子类。
鉴于此定义,Task.Factory 是否适合作为工厂方法模式的示例,因为 Task 类的父级没有子类?
【问题讨论】:
标签:
design-patterns
task
task-parallel-library
factory
【解决方案1】:
我从 Head First Design Patterns 中得到了这个问题的答案,我正在粘贴书中的内容。所以功劳归作者所有..
如果您只有一个具体的创建者,工厂方法模式很有用,因为您正在将产品 [Task] 的实现与其使用解耦。如果您添加额外的产品或更改产品的实现,它不会影响您的 Creator(因为 Creator 没有与任何 ConcreteProduct 紧密耦合)。
在这种情况下,创建者是 Task.Factory。