工厂方法模式(factory method)

Android工资翻倍篇之工厂模式


试想一下这样的场景,假如代码中用new创建一个类创建了20次,也就是说new了20次,突然有一天发现这个类的构造方法需要改变,里面需要新加一个参数,这个时候,就需要去找到这20个new的地方,然后分别更改,工厂模式就能解决这个问题。只需要更改factory中的创建方法就可以同时修改任意地方创建出的类。



这只是一种场景,另一种场景,假如我们new一个对象的时候需要进行一些判断,比如说在满足条件A的时候用一个构造方法进行创建,满足条件B的时候用另外一种构造方法创建等等,那么每次创建对象的时候都需要进行条件判断,这个时候我们可以使用工厂模式,你无须知道他内部是怎么创建的,只要调用factory.build方法进行创建即可

下面是信贷机构的核验你信用额度的两个类,分别提供了在线核验和离线核验两种方案,在线核验需要你输入身份证id,然后根据信贷代理机构进行核验,离线核验是在机构人员不在的情况下弹出对话框,让用户输入一些信息进行离线的核验,并返回你的信贷额度。所以我们每次做额度评估的时候都需要判断信贷机构是否在线才能评估出额度,这样非常麻烦,因为我们在每次进行评估的时候都需要写一长串的代码来进行判断机构是否在线才能进行评估(评估方法的调用在不同类中出现时),这些判断的代码就会有非常严重的重复。


我们使用工厂模式进行重构


因为调用工厂模式的create方法返回的是一个类,所以我们需要创建一个公共的接口 CreditCheck ,让online和offline分别实现这个接口并实现里面的公共方法,分别返回评估数据,然后就可以统一返回一个我们需要的类CreditCheck。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值