资讯专栏INFORMATION COLUMN

Spring框架之我见(一)——工厂模式

venmos / 2114人阅读

摘要:相对于工厂模式,抽象工厂模式生产的对象更加具体,也更加丰富,但相对编码也更加复杂。具体的抽象工厂模式的实现大家可以参考菜鸟教程。知道了工厂模式和抽象工厂模式的区别,请大家使用的时候应该根据具体的情况进行选择。

大家好,今天给大家分享一些Spring的学习心得,在讲Spring之前,先和大家分享Spring中核心的设计模式。
工厂模式

在聊概念之前我先问问大家:什么是工厂?

这个很简单,工厂就是生产物品的地方,比如,鞋子工厂生产鞋子,工厂衣服生产衣服,汽车工厂生产汽车。

我们都是知道,Java是一种面向对象的语言,那么对象是不是也会有对象工厂呢?

答案是肯定的,而工厂模式就是实现了Java对象工厂的一种创建性设计模式。

概念:工厂模式(Factory Pattern)就是一个创建对象的接口。不同的子类可以创建不同的对象。

知道了什么是工厂模式,那我们不禁要问了使用工厂模式和使用new关键字创建对象有什么区别?我们为什么要费力去为创建对象再专门写一个对象工厂呢?

我理解的工厂模式主要适用于以下几种情况:

需要创建复杂对象的的时候都可以使用工厂模式。

创建过程更灵活,比如说我们创建JDBC的Connection连接需要设置驱动、用户名密码,Url 我们就可以使用工厂模式。

最后,也是最重要的一点,就是解耦。比如说,我现在要换一个数据库,我直接在工厂里重写一个新的创建方法就行了,实际的JDBC的操作几乎不需要去更改。

这里我只是说一下我自己的理解,如果大家对工厂模式需要更加深入的了解可以参考菜鸟教程,其中写得更加详细。

抽象工厂模式

既然聊到这里,我们就不得不提一下工厂模式的加强版——抽象工厂模式(Abstract Factory Pattern),其实,在我的理解中抽象工厂就是从其他工厂获取原料的工厂。
如果我们需要一辆汽车,我们不需要自己造,可以直接从汽车工厂里拿,这就是工厂模式,但是汽车工厂也不是从零生产的,汽车工厂需要从发动机工厂买发动机,轮胎工厂买轮胎,对不对,汽车工厂就相当于那个抽象工厂。

相对于工厂模式,抽象工厂模式生产的对象更加具体,也更加丰富,但相对编码也更加复杂。具体的抽象工厂模式的实现大家可以参考菜鸟教程。

知道了工厂模式和抽象工厂模式的区别,请大家使用的时候应该根据具体的情况进行选择。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/68156.html

相关文章

  • Spring框架我见(三)——IOC、AOP

    摘要:模块负责的所有面向切面的功能。总结的统一管理,降低了对象之间的耦合对主流的框架提供了很好的集成支持提供众多组件,事务管理,等具有高度可开放性,开发者可以自由选择部分或全部主要使用工厂模式和代理模式。 聊完了Spring框架中最重要的两种设计模式,我们来看一下Spring框架的模块和结构图。 Spring框架的结构 下图是Spring官方给出的Spring框架的结构图。 showImg(...

    khs1994 评论0 收藏0
  • Spring框架我见(二)——代理模式

    摘要:聊完了工厂模式,下面我们来说框架中的另一个核心设计模式代理模式。这里的外卖小哥就相当于是我们的代理。主要分为代理和代理。 聊完了工厂模式,下面我们来说Spring框架中的另一个核心设计模式——代理模式(Proxy Pattern)。 代理模式 大家可以先不用看概念,先举个吃饭的例子:比如说我们想吃饭,我们可以选择自己做饭吃、去饭店吃、叫外卖吃。如果我们选择自己做着吃,我们就需要去买菜、...

    oneasp 评论0 收藏0
  • Spring框架我见(五)——Spring Boot

    摘要:通过我们可以更轻松地入门,更简单的使用的框架。团队为了摆脱框架中各类繁复纷杂的配置,使用约定优于配置的思想,在基础上整合了大量常用的第三方库的开发框架。这里还要说的一点,的出现并不是单纯的为了简化开发,更是为做铺垫。 说完了Spring 我们来聊聊Spring的进阶版Spring Boot,如果你还不知道Spring Boot,那希望这篇文章能够为你指明方向。 Spring Boot ...

    张巨伟 评论0 收藏0
  • Spring框架我见(四)——Spring MVC

    摘要:是结构在框架中的一种表现形式。这句话听起来有点绕,我们可以看一下下面这张图,大家可以吧容器中的理解为全局变量,吧容器中的理解为局部变量。在方法体中可以访问局部变量和全局变量,但是在方法外,就只能访问全局变量,是不能访问局部变量的。 聊完了Spring,我们来看看Spring在web方面的应用Spring MVC。 MVC 首先我们来看什么是mvc? 大家知道在jsp里面也是可以写jav...

    shiina 评论0 收藏0
  • Spring框架我见(六)——Spring Cloud

    摘要:系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。传统架构升级困难。新的轻量级协议容器化的出现。熔断处理在微服务出现问题时防止出现雪崩效应。 聊完Spring Boot,我们来看看Spring Boot最重要的一方面的应用——Spring Cloud。 Spring Cloud 再聊SpringCloud之前我们先聊聊微服务。 ...

    alighters 评论0 收藏0

发表评论

0条评论

venmos

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<