创建型模式--工厂方法

1、介绍

工厂方法就是对简单工厂的补充,因为简单工厂在创建类的时候,是根据传递的参数来进行创建的,如果参数是class反射来创建还好,如果不是那么会产生大量的if else if elseif 这样的语句,设计模式一个最重要的功能就是减少这个if else。 所以工厂方法应运而生,他就是将属于相同分类的类创建封装到一个工厂接口的子类中去创建。

工厂模式并不仅仅是用来new出一个类的对象的。简单工厂确实如题主的描述所说,是一个工厂对应一个类的关系。在这里,可以举出一些复杂的例子,与题主的描述不同。假设有代码包A和代码包B,代码包B是代码包A的调用者,A向B暴露接口InterfaceA。在A的内部结构中,实现了InterfaceA的有ClassA1,ClassA2,ClassA3,……ClassA100。但是B并不关心这些,因为对于B来说,A的功能只有一个,就是InterfaceA。这个时候,B想要使用一个InterfaceA的实现,想要new一个出来,但又不想与代码包A中的复杂的构造逻辑耦合,怎么办?只能向代码包A中传递参数,交给代码包A自己选择到底是那个ClassA1还是A100被new出来。而这个对构造过程进行选择的逻辑,就是工厂。当然了,我这里举的例子是InterfaceA,你也可以用AbstractClassA之类的。工厂在这里面起的作用,就是隐藏了创建过程的复杂度,以配合InterfaceA对那一百个子类的复杂度进行隐藏,这样B只要知道上转型之后的InterfaceA即可,简单清晰。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值