Spring中的设计模式--工厂方法模式

本文探讨了工厂方法模式的常见误区,解释了模式的定义,并通过Spring框架中的应用实例阐述了其如何实现松耦合设计。文章还强调了工厂方法模式遵循的依赖倒置原则,有助于编写出易于扩展的代码。
摘要由CSDN通过智能技术生成

小编博客地址:https://charpty.com

关于工厂方法模式的误会

不太在意设计模式的同事会对工厂模式有极深的误解,总会把“工厂模式”与“静态工厂方法”混为一谈,什么是静态工厂方法?看一个简单的例子:

public class SimpleClientFactory {
   

    public static Client createClient(){
        return new Client();
    }
}

通过一个静态方法来创建实例,这种方式在代码中比较常见,但这并不是我们今天要说的工厂模式,它只是一个“静态工厂方法”。
个人觉得很难给模式一个语句上的定义,因为这些模式本身只是一些帮助我们养成好的代码习惯的一些建议,它们甚至算不上是一种规范。对于工厂模式,我觉得某一段定义说的是比较准确的。

父类定义了创建对象的接口,但是由子类来具体实现,工厂方法让类把实例化的动作推迟到了子类当中。

也就是说,父类知道什么时候该去创建这个对象,也知道拿到这个对象之后应该对这个对象做什么事情,但是不知道如何去创建这个对象,对象的创建由子类来完成。
之所以有这种设计模式,也是多年业务逻辑的积累导致,大多数业务场景下,对某一类对象总是要执行相同的流程,但是并不在意这些对象之间的微小差异,这种业务场景就非常符合工厂模式的设计。公共的父类决定了怎么去处理这一类对象,而子类决定了如何创建这些有着微小差异的不同对象。

既然是工厂方法模式,那什么是“工厂方法”?举个基础的例子:

// 这是一个网页爬虫类,它利用HttpClient来获取数据并分析
public abstract class WebCrawler {
   

    // 爬取网页数据
    public WebResult getWebInfo
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值