工厂模式跟策略模式的区别

        最近在阅读《大话设计模式》,其中在第一二章就引出了“工厂模式”跟“策略模式”两种设计模式,但是可能由于我第一次阅读和学习有关设计模式的知识,对这两种设计模式的实现方式产生了混淆了,有点头晕,不怎么好理解他们之间的区别,在反复看了书中的例子跟上网查阅了许多前辈门关于这两种模式的文章以及博客之后,终于有了那么一丝丝的感觉。

        主要差异:

        1、作用

         工厂模式主要的用途是创建对象,根据在客户端传入一个数据,在工厂类中创建相应的对象,然后返回给客户端,它使对象的创建独立于使用对象的客户,它属于创建型模型;

         策略模式主要用于选择策略方法,在客户端中根据你所选择的行为或者策略创建一个对象。策略模式就是为了解决策略的切换和扩展,它定义了策略族,并将它们封装起来,策略模式将策略的变换独立于使用策略的客户,它属于行为型模型;

        2、关注点

        工厂模式关注的是对象的创建

        策略模式关注的是行为的封装


       另外在这里引用两个我在CSDN的帖子里面看到认为比较能让我找到感觉的例子,在此非常感觉写出这个例子的大神。

       一、

       女人有很多种,基本都会生孩子。(不要在意例子本身不雅,注意体会其含义)
       1、找个会生孩子的身材好的女人。(如何找的逻辑就交给女人工厂了,客户端只要得到女人就可以了)。
       2、找个身材好的女人代孕生个孩子,当然到最后只要孩子不要女人。(如何在多种女人中找个身材好的女人代孕生孩子是策略类的职责,最后策略类只要把孩子交给客户端即可)。

      二、

      工厂模式:根据你给出的目的来生产不同用途的斧子,例如要砍人,那么工厂生产砍人斧子,要伐木就生产伐木斧子。即根据你给出一些属性来生产不同行为的一类对象返回给你。关注对象创建
      策略模式:用工厂生产的斧子来做对应的事情,例如用砍人的斧子来砍人,用伐木的斧子来伐木。即根据你给出对应的对象来执行对应的方法。关注行为的选择

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值