<span>java之简单工厂</span>

 

 1、使用步骤

  • 创建抽象/接口产品类,定义具体产品的公共接口方法;(产品接口类
  • 创建具体产品类,是继承抽象产品类的;(产品接口实现类
  • 创建工厂类,通过创建静态方法根据传入不同参数从而创建不同具体产品类的实例;(工厂类,创建具体产品实例)
  • 外界通过调用工厂类的静态方法,传入不同参数从而创建不同具体产品类的实例。(使用类,使用工厂类获得想要的产品实例)

2、 优点

  • 将创建实例的工作与使用实例的工作分开,使用者不必关心类对象如何创建,实现了解耦;(创建对象和使用对象分离
  • 把初始化实例时的工作放到工厂里进行,使代码更容易维护。 更符合面向对象的原则,面向接口编程,而不是面向实现编程。(面向接口编程

3、缺点

  • 工厂类集中了所有实例(产品)的创建逻辑,一旦这个工厂不能正常工作,整个系统都会受到影响。
  • 违背“开放 - 关闭原则”,一旦添加新产品就不得不修改工厂类的逻辑,这样就会造成工厂逻辑过于复杂。
  • 简单工厂模式由于使用了静态工厂方法,静态方法不能被继承和重写,会造成工厂角色无法形成基于继承的等级结构。

4. 应用场景

在了解了优缺点后,我们知道了简单工厂模式的应用场景:

  • 客户如果只知道传入工厂类的参数,对于如何创建对象的逻辑不关心时;
  • 当工厂类负责创建的对象(具体产品)比较少时。

 

全部评论

相关推荐

寿命齿轮:实习就一段还拉了,项目一看就不是手搓,学历也拉了,技术栈看着倒是挺好,就是不知道面试表现能咋样。 不过现在才大三,争取搞两端大厂实习,或者一个纯个人项目+一段大厂,感觉秋招还是未来可期。
投递美团等公司10个岗位
点赞 评论 收藏
分享
offerboyyyy:之前看到降温完收到offer了的呢佬,可以签保底等
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务