知识卡片

工厂方法模式的定义与命令简化原理

普通读书笔记卡 · 1853.a

内容

工厂方法模式定义创建对象的接口,把实例化哪个类的决定权延迟到子类或参数。女娲下命令 “生产一个黄色人种”而非描述完整特征,说明调用方只关心结果类型、不关心创建细节。落地上 工厂的createHuman(Class c)方法接收产品接口的实现类作参数,内部用反射newInstance完成 实例化。发散:”只说要什么、不说怎么造”是声明式意图表达,后续创建型模式都延续这个思路。

参考来源

- 位置:《设计模式之禅(第2版)》第8章《工厂方法模式》(源文件:_epub-src/text/part0033.html、part0034.html) - 结论依据:原文用女娲下命令"生产一个黄色人种"而非描述具体特征为例,说明工厂方法的输入参数应该是产品类型本身,随后给出用反射通过Class参数实例化产品的通用代码实现。 - 原始内容:应该是"给我生产出一个黄色人种(YellowHuman类)",而不会是"给我生产一个会走、会跑、会说话、皮肤是黄色的人种",因为这样的命令增加了交流的成本……定义一个用于创建对象的接口,让子类决定实例化哪一个类。