知识卡片

雇工模式让一组类共享通用功能而不必各自实现

普通读书笔记卡 · 1870.b.10

内容

雇工模式(仆人模式)解决问题:厨师/园丁/裁缝都要执行”清洁”,常规做法是各自 实现清洁接口;雇工模式反过来把清洁能力抽到独立雇工类Cleaner,被清洁对象只需实现 Cleanable接口,雇工持有引用统一调用。发散:一组无关的类不需各自实现通用功能,只需 声明”可被服务”;书中明确指出雇工模式本质是命令模式的简化——省略命令这一层,让雇工 直接调用可服务对象的方法,结构更轻量。

参考来源

- 位置:《设计模式之禅(第2版)》第38章《新模式》38.3节(源文件:_epub-src/text/part0163.html) - 结论依据:原文给出雇工模式定义"它为一组类提供通用的功能,而不需要类实现这些功能,它是命令模式的一种扩展",用厨师/园丁/裁缝清洁厨房/花园/衣服的例子演示,并在最佳实践中总结"这与命令模式非常相似……雇工模式是命令模式的一种简化,但它更符合我们实际的需要,更容易引入开发场景中"。 - 原始内容:雇工模式是行为模式的一种,它为一组类提供通用的功能,而不需要类实现这些功能,它是命令模式的一种扩展……这与命令模式非常相似,读者可以回顾第15章,会发现雇工模式是命令模式的一种简化,但它更符合我们实际的需要,更容易引入开发场景中。