工厂模式

54 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第5天,点击查看活动详情

前言

兄弟们,今天在家待了几乎一整天,下午睡到四点多之后去看了一场包场的电影《万里归途》;从电影院出来后看到路边店铺门口挂的国旗在风中舞动,突然就很感动!生活中总有类似于这样的让人治愈的瞬间~
今天学习一下工厂模式,代码中用到了它,及时进行巩固一下!

简单工厂模式

image.png

image.png

简单工厂模式,又称为静态工厂方法,是类创建型模式,在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类;

image.png

总结

简单工厂模式根据传入的参数不同创建不同的对象,优点在于工厂类中可以判断客户的的选择来动态实例化相关的类,对于客户端来说,去除了具体产品的依赖。但工厂类集中了对所有实例创建的逻辑,如果我们要新增子类或者改变方法的话,每次都得修改工厂类里面的代码,工厂类中的代码就会十分臃肿,这就等于说我们不仅开放了扩展,还开放了修改,这样就违反了 开放 - 封闭 原则。

优点: 用户不需要关注创建对象的细节(你只管调用这个方法就行了)

缺点: 创建对象的工厂类在需要变更时会变得很麻烦(专业一点就是简单工厂模式不够灵活)

工厂模式

image.png

image.png

在工厂模式中,之前的核心工厂变成了一个抽象接口,它负责给出工厂应该实现的方法,不再负责所有产品的创建,而是将具体产品的创建交给子类去做,这样就产生了子工厂即子类,负责生成具体的产品对象。

image.png

总结

工厂模式可以说是简单工厂模式的进一步抽象和拓展,在保留了简单工厂的封装优点的同时,让扩展变得简单,让继承变得可行,增加了多态性的体现。

综述

简单记录下最近用到的这些概念,代码还是要多写多练才会对相应的理论知识理解的更为深刻及准确,共勉!