设计模式—简单工厂和策略模式

本文探讨了简单工厂模式和策略模式的应用与区别。简单工厂模式通过工厂类实现产品的创建,减轻客户端负担;策略模式则封装算法家族,允许算法间的灵活替换。两者都提升了软件设计的灵活性与可维护性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


简单工厂模式

    模式的核心是工厂类,这个类负责产品的创建,而客户端可以免去产品创建的责任,这实现了责任的分割。但由于工厂类集中了所有产品创建逻辑的,如果不能正常工作的话会对系统造成很大的影响。如果增加新产品必须修改工厂角色的源码改工厂角色的源码。

   个人理解就是在一个工厂内(工厂类),定义好规范标准(父类,虚方法),然后同工种各司其职(子类)。然后老板(客户端)在说要生产啥,咱就干啥。当然为了增加灵活性,可以引进不同产线,这样就需要选择(选择算法)。

   工厂类最大的贡献就是低耦合,这样修改起来风险小,但是相对的维护阅读难度加大,如果有完整的功能说明书或者uml图,那将会很省事。在开发c/s系统时,后台为C++等程序时,工厂类的想法其实很是方便,将后台功能函数分为3层,就能做到较好的耦合性。当然最好比避免不同功能的重复调用,否则只能是导致最后牵一发动全身。工厂类很适合一些业务逻辑的编写,如果别人已经封装过的程序,你最好不要再用工厂类了,否则层层调用,反而增加了以后的维护难度。



策略模式

   策略模式(Strategy):它定义了算法家族,分别封装起来,让他们之前可以互相替换,此模式让算法的变化,不会影响到实用算法的客户。
   策略模式会用到抽象,就是abstract和override。所以聚合相同属性和功能才能形成一个类。
   策略模式将算法和选择分开,这点和工厂类似,但是算法可以复用的,工厂工人却最好只能完成一项工作。在复用的情况下,当然调用规则要明确啦,而且是解决同一类的事情。当面对需求修改时,策略不变,修改算法即可了。一改百改,方便又实用,而且单元测试也方便。
  
         策略模式和简单工厂类有点类似,但是更讲究复用和聚合,个人觉得侧重点不同。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值