设计模式 ——简单工厂

  打个比方,你想创业开厂,但不知道开什么厂好。有3个人资助你开厂。如果你选择A,A资助你开化工厂;你选择B,B资助你开水果厂;你选择C,C资助你开服装厂。

  简单工厂就是在不同的情况下选择不同的实现。

       看代码实现体会下吧:

     

      

        

       

         

            

               

   简单工厂模式的主要作用就是选择具体实现,那么如何进行选择?  
   上面的代码实例是根据客户端传递进来的条件值来选择的,我们还可以通过别的方式来选择,比如:

  1、配置文件,在配置文件中配置好到底是在当前的生产环境中选用哪个实现类

  2、通过读取运行期内存中某个值来进行判断选择

   简单工厂的优点   

   1、帮助封装

    简单工厂虽然很简单,但是非常友好的帮助我们实现了组件的封装,然后让组件外部能真正面向接口

   编程。

    2、解耦 

   通过简单工厂,实现了客户端和具体实现类的解耦。

  如同上面的例子,客户端根本就不知道具体是由谁来实现,也不知道具体是如何实现的,客户端只是  通过工厂获取它需要的接口对象。

   

     简单工厂的缺点:

     可能增加客户端的复杂度:   如果通过客户端的参数来选择具体的实现类,那么就必须让客户端能理解各个参数所代表的具体功能 和含义,这会增加客户端使用的难度,也部分暴露了内部实现,这种情况可以选用可配置的方式来实 现。

 

   

 

              

          

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值