浅析设计模式1 —— 工厂模式
作者:刘文慧(鎏越)
出品:大淘宝技术
本文将着眼于工厂模式,从简单工厂模式、工厂方法模式和抽象工厂模式出发,展开学习和深入探讨。 本文为此系列第一篇。
概述
我们在进行软件开发时要想实现可维护、可扩展,就需要尽量复用代码,并且降低代码的耦合度,而设计模式就是 一种可以提高代码可复用性、可维护性、可扩展性以及可读性的解决方案。
大家熟知的23种设计模式,可以分为创建型模式、结构型模式和行为型模式三大类。其中,创建型模式是对类的实 例化过程进行抽象,从而将对象的创建和使用分离开。工厂模式属于创建型模式的范畴,本文将着眼于工厂模式, 从简单工厂模式、工厂方法模式和抽象工厂模式出发,展开学习和深入探讨。(本文如有表述不当的地方也恭请大 佬们指教哦~)
基本概念
工厂模式的核心思想就是把创建对象和使用对象解藕,由工厂负责对象的创建,而用户只能通过接口来使用对象, 这样就可以灵活应对变化的业务需求,方便代码管理、避免代码重复。
假设我们在工作中需要将产品 a 升级为产品 A ,如果创建对象的工作是由用户来做,也就是用户通过 new a() 的形 式创建对象,那么为了应对新的产品升级需求,我们还需要找到所有相关代码并将它们改为 new A(),这对于淘宝 体系下的很多庞大工程而言就是一项极为繁琐的工作;而通过应用工厂模式,将所有对象创建工作交由工厂管理 时,我们就可以直接在工厂中将 return new a() 改为 return new A() ,用户仍然可以调用 factory.createProduct ()方法而无须更改原本的代码。这样工厂可以通过复用来减少重复代码量,并且用户无需关注创建对象的逻辑。
工厂模式在 Java 程序员的工作中可以说是无处不在:我们最常用的 Spring 就是一个Bean 工厂,IOC 通过 BeanFactory 对 Bean 进行管理(可参考上面这张类图);我们使用的日志框架 slf4j 使用了工厂方法模式;JDK 的 Calendar 使用了简单工厂模式……
下面本文将结合基本概念和具体示例来详细分析常用的几种工厂模式。
带你读《2022技术人的百宝黑皮书》——浅析设计模式1 —— 工厂模式(2)
https://developer.aliyun.com/article/1262283?groupCode=taobaotech