创建模式,顾名思义就是用创建对象的模式
创建模式用于帮助一个系统创建、组合和表示它所需要的对象
一般常用的创建模式用以下五种
请各位依次阅读完以下物种常用的创建模式
然后会提供一个demo,在这个demo中将作为一个黑心小作坊老板,使用五种创建模式来生产手机
在不同情况下不同的创建模式之间可能是竞争或者互补的关系。 比如抽象工厂经常和工厂方式一起实现,生成器和抽象工厂一定程度上可以互相替换,而原型模式在实现中可以使用单例模式保持对象的一致性
我们依旧以手机为例
首先一个手机有外壳、主板、操作系统、logo等元素或部件组成(为了简化代码,我们暂定只有这么五个对象)
现在我们有一个小作坊用来生产贴牌手机,但是由于现作坊能力的限制,自己只能生产手机外壳同时把其他组件给装配到手机上,同时自己还能根据工艺水平优化装配过程(抽象工厂+工厂方法)
那么问题来了:其他四个组件怎么产生?
主板:由soc、闪存、内存等部件组成,我们向第三方采购,只要告诉第三方供应商我们要什么他们就往里加什么,一步步添加后最终拿到成品(生成器)
操作系统:假设我们基于某开源系统已经深度定制化开发了一套系统,我们要做的就只需要把操作系统拷贝一份到手机上就行了(原型模式)
logo:与操作系统同理
最后,为了扩大规模,我们希望同时给多个公司生产贴牌手机,他们的要求是每个品牌都有条独立的生产线,但为了节约成本tmd就是不增加生产线(真tm黑),还不能让甲方爸爸们发现我们在忽悠他们(单例模式)
具体代码
component.py 提供了手机所需的所有组件,里面涉及了原型模式、抽象工厂等设计模式
contract.py 提供了手机代工相关合同,里面涉及了工厂方法等设计模式
pipeline.py 提供了手机制造流水线等相关类,里面涉及了单例模式等设计模式
supplier.py 提供了主板的供应商,里面涉及了生成器等设计模式
main.py 入口文件