【校招VIP】java设计模式之工厂模式

06月13日 收藏 0 评论 2 java开发

【校招VIP】java设计模式之工厂模式

考点介绍:

工厂模式比较常见,许多开源框架中也经常出现。因此面试的时候经常会出现。工厂模式提供一个用于创建对象的接口(工厂接口),让其实现类(工厂实现类)决定实例化哪一个类(产品类),并且由该实现类创建对应类的实例。

本期分享的java设计模式之工厂模式,分为试题、文章以及视频三部分。

答案详情解析和文章内容可扫下方二维码或链接即可查看!

一、考点题目

1.说一说简单工厂模式

解答:简单工厂模式指由一个工厂对象来创建实例,客户端不需要关注创建逻辑,只需提供传入工厂的参数。适用于工厂类负责创建对象较少的情况,缺点是如果要增加新产品,就需要修改工厂类的判断逻辑,违背开闭原则,且产品多的话会使工厂类比较复杂。Calendar 抽象类的 getInstance 方法,调用 createCalendar 方法根据不同的地区参数创建……

2.抽象工厂模式了解吗?

解答:抽象工厂模式指提供一个创建一系列相关或相互依赖对象的接口,无需指定它们的具体类。客户端不依赖于产品类实例如何被创建和实现的细节,主要用于系统的产品有多于一个的产品族,而系统只消费其中某一个产品族产品的情况。抽象工厂模式的缺点是不方便扩展产品族,并且增加了系统的抽象性和理解难度。java.sql.Connection 接口就是一个……

3.为什么要使用工厂模式?优缺点?使用场景?

解答:使用目的:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。优点:(1)一个调用者想创建一个对象, 只要知道其名称就可以了。(2)扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以(3)屏蔽产品的具体实现,调用者只关心产品的接口。缺点:(1)每次增加一个产品时,都需要增加一个具体类和对象实现工厂,使得系统中类的个数成倍增加,在一定程度上增加了系统的复杂度,同时也增加了……

4.抽象工厂模式和原型模式之间的区别?

解答:抽象工厂模式:通常由工厂方法模式来实现。但一个工厂中往往含有多个工厂方法生成一系列的产品。这个模式强调的是客户代码一次保证只使用一个系列的产品。当要切换为另一个系列的产品,换一个工厂类即可。原型模式:工厂方法的最大缺点就是,对应一个继承体系的产品类,要有一个同样复杂的工厂类的继承体系。我们可以把工厂类中的工厂方法放到产品类自身之中吗?如果这样的话,就可以将两个……

(答案点击下方链接或者扫海报二维码查看哦)

二、考点文章

1.【校招VIP】工厂模式超详解(代码示例)

工厂模式概述:工厂模式的主要解决的问题是,将原来分布在各个地方的对象创建过程单独抽离出来,交给工厂类负责创建。其他地方想要使用对象直接找工厂(即调用工厂的方法)获取对象。工厂模式的三种类型,工厂模式主要有三种类型1、简单工厂2、工厂方法3、抽象工厂。简单工厂:拿泡茶为例,茶叶有好多种类,比如龙井、碧螺春、毛尖等。首先一个ITea接口:……

2.【校招VIP】Python 实现设计模式之工厂模式

引言:设计模式是可重复使用的编程方案,已被用于各种现实世界的环境中,并被证明能产生预期的结果。在本文中,我们将学习最常见的设计模式之一:工厂模式。正如我们稍后将看到的,这种模式使我们更容易跟踪程序中创建的对象,从而将创建对象的代码与使用对象的代码分开。我们将研究工厂设计模式的两种形式:工厂方法和抽象方法。设计模式在程序员之间共享,并随着时间的推移不断被改进。 这个话题的流行要归功于 Erich Gamma, Richard Helm, Ralph Johnson, 和 John Vlissides 写的《设计模式:可复用面向对象软件的基础》,根据他们的名字又把书称为……

3.【校招VIP】如何使用 Spring 实现策略模式+工厂模式

一、策略模式,策略模式定义了一组算法,将每个算法都封装起来,并且使它们之间可以互换。1、策略模式主要角色,主要角色如下:①封装角色(Context): 也叫做上下文角色,起承上启下封装作用,屏蔽高层模块对策略、算法的直接访问,封装可能存在的变化②抽象策略角色(Strategy): 策略家族的抽象,通常为接口,定义每个策略或算法必须具有的方法和属性③具体策略角色(ConcreteStrategy): 实现抽象策略中的操作,该类含有具体的算法。2、实现策略模式……

(扫下方海报二维码查看完整版)

三、考点视频

1.多线程中sleep()和wait()方法的区别

所属类不同,sleep是线程类Thread的静态方法,wait是object类的普通方法。线程持有锁,sleep线程暂停执行指定时间,把执行机会给其他线程,但是监控依然在,不释放线程锁。wait导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出的notify方法。使用场景,sleep方法可以在任何地方使用,wait方法只能在同步方法和同步代码块中使用……

移动端链接:https://m.xiaozhao.vip/dTopic/detail/409

PC端链接:https://xiaozhao.vip/dTopic/detail/409

C 2条回复 评论
不会拓扑的数学汪

大厂我来了!

发表于 2023-08-14 22:00:00
0 0
一盏课堂

这套课质量挺值得价格的

发表于 2023-05-31 22:00:00
0 0