最近在看《精通Python设计模式(Mastering Python Design patterns)》,
刚刚看完建造者模式,由于和看完工厂模式隔的时间有点久,再加上两者本来就很像,有点分不清了。
所以,今天又看了看这两者,区分一下,加强下记忆,以便安心看后边的设计模式。
才疏学浅,有错误还请指正:
比较项目\模式名称 | 工厂模式 | 建造者模式 |
---|---|---|
侧重点 | 简化对象创建 | 简化复杂过程、复杂顺序的对象的创建 |
对象创建的灵活度 | 预先定制,不灵活 | 预先定制较少,灵活度较高 |
实际例子 | 苹果电脑 | 组装电脑 |
相关代码和解析 | factory_method.py | builder_pattern.py |
实际例子说明:
比如,苹果电脑的生产,用哪种型号的CPU、多大的内存、多大的硬盘、什么操作系统等等,都定制好了,用户参与的灵活度极低。
而组装电脑的生产就灵活多了,哪种型号的CPU、多大的内存、多大的硬盘、什么型号的显卡、什么操作系统等等都可以自己说的算,灵活度较高。前者是工厂模式,后者是建造者模式。在建造者模式中,指挥者可以更多地参与建造的细节。
这里的对于电脑的“生产”一词可能不太妥当,不要过于纠结。本意在于说明两种建造模式的区别。
The end.