Abstract Factory抽象工厂

       大学是学自动化的,毕业做软件,知识缺乏,最近想学习一下设计模式,用的资料就是那本《设计模式可复用面向对象软件基础》,每一种模式都读了几遍,有些还是不太理解,刚从事这行业整一年的时间,希望通过写博客来加深一下自己的理解,同时也记录自己的思想的转变,可以逐渐的完善,并且我是用的C++,各种设计模式其实都是在使用继承。

       先从Abstract Factory模式开始

      书中是这样说的:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

      我对于它的理解现在是这样的,我们要造一个东西,它的大概构造是一定的(这里的一定不是固定的意思,只是每次实现了是一定的,但是可以有不同的实现),只是每种部件的样式会有区别,而我们还想把构造过程和部件样式解耦。

       举例说明一下:

       这有一个汽车自动化装配厂,汽车的装配过程是一定的,但是它却不知道会使用哪种牌子的零件,零件需要零件厂商提供。

       这些零件厂商都遵循一个统一的零件种类标准(这里假定装配一辆车所用的零件种类是固定的),这个统一的零件种类标准形成一个抽象类也就是一个抽象厂商类,所有厂商都继承这个抽象类,之后,各自实现自己的零件样式(比如零件的材质、颜色之类的),而每种零件也有一个标准,因此,各个厂商在生产自己零件的时候还要遵循这个零件制造标准,这个统一的零件制造标准就形成一个基类,各个厂商的零件继承这个基类的同时可以添加不同特色。

       在这里其实用到了两种设计模式:一个是Abstract Factory,一个是Factory Method

       Abstract Factory在这里是指汽车装配厂在装配汽车的过程中会接收一个参数,这个参数就是抽象厂商类的引用或指针,在实际中我们可以传递不同厂商的类(因为它们都是抽象厂商类的派生类),到这其实就完成了抽象工厂的应用了。

       Factory Method在这里是指单独拿出一个厂商来说,这个厂商继承抽象厂商类,完成零件的制造。这就是Factory ethod的应用。

       Factory Method在书中是这样说的:定义一个用于创建对象的接口,让子类决定实例化哪一个类。



希望懂的帮忙看看有什么理解错误的地方,拜谢!




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值