【校招VIP】java设计模式之策略模式

06月20日 收藏 0 评论 0 java开发

【校招VIP】java设计模式之策略模式

考点介绍:

策略模式(Strategy Pattern)属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。其主要目的是通过定义相似的算法,替换if else 语句写法,并且可以随时相互替换。

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

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

一、考点题目

1.讲一讲策略模式?

解答:策略模式属于行为型模式,定义了一系列算法并封装起来,之间可以互相替换。策略模式主要解决在有多种算法相似的情况下,使用 if/else 所带来的难以维护。优点是算法可以自由切换,可以避免使用多重条件判断并且扩展性良好,缺点是策略类会增多并且所有策略类都需要对外暴露。在集合框架中,经常需要通过构造方法传入一个比较器 Comparator 进行……

2.策略模式的优缺点是什么?

解答:优点:1.策略模式提供了对 “开闭原则” 的完美支持,用户可以在不修改原有系统的基础上选择算法或行为,也可以灵活地增加新的算法或行为2.算法可以互相切换, 无需知道算法的具体实现3.使用策略模式可以避免多重条件选择语句。多重条件选择语句是硬编码,不易维护4.可扩展性更好, 可以灵活地增加新的算……

3.策略模式的使用场景是什么?

解答:1、一个系统, 需要动态的在几个算法之间选择, 它们之间的区别仅仅是算法或者行为的不同,那么可以使用策略模式, 这样我们可以动态地让一个对象在许多行为中选择一种行为。2、一个系统需要动态地在几种算法中选择一种。3、一个对象有很多的行为,如果不用策略设计模式,这些行为就只好使用多重条件选择语句来实现。而使用策略模式,把这些行为转移到……

4.讲一下策略设计模式实现的四步骤

解答:1.策略接口类: 是对策略, 算法的抽象. 定义了每个策略和算法必须有的算法和属性.2.策略实现类: 策略,算法的具体实现. 策略具体有几种类型的实现就定义几个策略类,并实现策略方法3.Context上下文类: Context上下文, 起到承上启下的作用. 屏蔽了上层模块对策略,算法的访问, 封装了可能存在的变化.到底当前要调用那个策略, 通过定义构造函数传参决定, 策略方法可以没有入参, 但必须有构造方法, 构造方法决定类的实际策略. 可扩展性强, 增加……

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

二、考点文章

1.【校招VIP】策略模式详解

策略模式(Strategy Pattern)定义了一组同类型的算法,在不同的类中封装起来,每种算法可以根据当前场景相互替换,从而使算法的变化独立于使用它们的客户端(即算法的调用者)。《GoF 设计模式》书中,它是这样定义的:Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it。例如:在网购中,我在支付的时候,可以根据实际情况来选择不同的……

2.【校招VIP】Java设计模式之策略模式

什么是策略模式?Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it.策略模式(Strategy Pattern):定义一族算法类,将每个算法分别封装起来,让它们可以互相替换。策略模式定义①、Context封装角色,它也叫做上下文角色, 起承上启下封装作用, 屏蔽高层模块对策略、 算法的直接访问,封装可能存在的变化。②、Strategy 抽象策略角色,策略、 算法家族的抽象, 通常为接口, 定……

3.【校招VIP】策略模式(如何干掉 if else)

策略模式定义了一系列的算法,并将每一个算法封装起来,使每个算法可以相互替代,使算法本身和使用算法的客户端分割开来,相互独立。策略模式基于的一种开闭原则。开闭原则:对于扩展是开放的(Open for extension)。这意味着模块的行为是可以扩展的。当应用的需求改变时,我们可以对模块进行扩展,使其具有满足那些改变的新行为。也就是说,我们可以改变模块的功能……

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

三、考点视频

1.从两个记录url的大文件中,找到所有重复的url

本题是校招大数据算法的一个典型题型,因为面试时间所限,不需要代码实现,只需要思路表达。但是几个要点要回答清楚:1. 能不能装入内存,不能的话把文件切分成多少小文件2. 切分成小文件的规则……

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

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

C 0条回复 评论

帖子还没人回复快来抢沙发