设计模式之 -----工厂模式二

我来更新了,哈哈。。。没有人看呢。自己给自己点了一个赞之后又取消了,哈哈。接下来开始正题

工厂方法:

可以说工厂方法是简单工厂的升级版,就是我的列子一样,如果我想加入一个看好的品牌手机,比如小米。我就需要改动我的原有代码。所以说简单工厂违背了OCP原则(开闭原则)如果你还不知道六大原则的话,你可以找些资料看下,或是找我要资料都可以的,我还有没具体去看,去学习。所以我就不引出这些东西了。

而工厂方法很好的解决了这个问题,下面看下我的demo吧,还是以昨天的那个列子来说

创建了一个华为手机品牌,哈哈感觉自己马上就是世界首付了

光有品牌还不行啊,必须得有工厂来生产啊

又创建了一个oppo手机,我膨胀了。。不屑代码了,卖手机去啦。。

还有一个品牌,其实结构都是一样的,就式一个品牌一个工厂,好像生活中也是这样的,只不过可能很多品牌都是由一个代工工厂生产的,列如富士康。。那就不写那个品牌了,下面看一下测试的结果吧

不知道各位小伙伴对这个工厂方法是怎么理解的,其实我个人觉得就是针对一个每一个品牌都需要一个独立的工厂,这样如果有新牌子的品牌的话,我只是再去增加这个品牌的手机跟工厂,两个类就做到了OCP但是它也有自身的缺陷,你有没有发现创建的类跟接口过多啊,这样还是比较麻烦的。

下面我们再来看看

抽象工厂:

抽象工厂就有点想代理工厂了,我把手机中的零件作为产品族,其实也就是手机中需要的零件,这样的话就可以不用像工厂方法那样,有多少个品牌就要创建多少个工厂了,我只需要根据零件去创建工厂然后把他们组装都一起,就成了一个手机。然后再贴上各自的品牌,就可以卖了。

CPU零件必不可少,我分别创建了高低端两种CPU

还有像素,其实也就是相机啦。不要太在意细节哈。也是高低端两种

手机工厂肯定避免不了的

还有两个高低端的手机工厂

接下来看看测试的结果吧

由于代码非常的简单,所以我也没有添加注释。下面再来说一下我对抽象工厂的理解吧,我个人觉得抽象工厂比较复杂,但是它对产品族添加来说是可以满足的,也满足了OCP原则。但是对添加单个产品的话就显得有些鸡肋了。

不知道你是怎么理解的呢?请留下你的想法

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值