4. 在实际项目中常用的设计模式?请列举一下应用场景。

在实际项目中常用的设计模式有如下几种:https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&uuid=1a0513f768dd42e88065708ac3b1237f#牛客AI配图神器#

单例模式(Singleton):应用于需要保证全局只有一个实例的情况,例如数据库连接池、线程池。

工厂模式(Factory):应用于创建对象实例的场景,隐藏实际创建逻辑,提供一个统一的接口。

观察者模式(Observer):应用于一对多的依赖关系,当一个对象状态发生改变时,其依赖的对象会自动进行更新。

适配器模式(Adapter):应用于将一个类的接口转换成客户端所期望的另一种接口,常用于旧代码的升级与兼容。

策略模式(Strategy):应用于根据不同的策略做出不同的处理,例如支付方式的选择、排序算法的选择等。

装饰器模式(Decorator):应用于为对象动态添加额外的功能,而不需要修改其原始代码。

模板方法模式(Template Method):应用于定义算法的骨架,将一些步骤的具体实现延迟到子类中。

命令模式(Command):应用于将请求封装成具体的对象,使得可以用不同的请求对客户进行参数化。

迭代器模式(Iterator):应用于提供一种方法来访问一个容器对象中的各个元素,而无需暴露其内部结构。

组合模式(Composite):应用于将对象组合成树形结构以表示部分-整体的层次结构,使得用户对单个对象和组合对象的使用具有一致性。
全部评论

相关推荐

也算是主播第一次面大厂。。本来投的日常实习,结果约面一问才知道是提前批(可能是当时手欠直接点到了提前批的邮件链接,没想到直接投递成功了),当时脑子一抽直接答应了下来隔天面,没想过推迟一点好准备准备,搞得整晚都焦虑睡不着觉(感觉没准备好),或许是面试太少了的原因吧。面试官有开摄像头,而且上来也先介绍了自己部门的业务,不过没让我自我介绍,上来就直接两道hard题(这个算kpi面吗)。算法题:任务调度优化(想出来是用贪心做,不过没撕出来)LCR 112 矩阵最长递增路径(想的是贪心,不过后来面试官说是动归+dfs)后面一道没做出来,直接让我说下思路,然后就开始问计网相关的:TCP三次握手四次挥手?三次握手过程中,第二次握手如果丢包,TCP怎么处理?(只答了个超时重传)一个比较实际的问题,10GB/s带宽的网络,ping它的时候延迟为2ms,三条TCP连接能不能跑满它的带宽?有没有了解过grpc协议?为什么业界认为比http更高效?redis事务了解吗?nacos怎么实现监听服务,实现热加载配置?问完这个面试官直接打算结束面试了,一点项目八股没问,可能看主包太菜了反问:1.可以评价下我哪里不足吗,有什么要改进的?面试官说我算法思路是有的,就是没有写出来,还需加强(两道hard还是太难为鼠鼠了)。还有加强主观题应用方向的思考,八股什么的在他们这不太适用了2.提前批面评会影响后续秋招吗?面试官说是分开的,不影响。总得来说面试体验还行,面试官看我没答上来也会讲解答案,态度也蛮不错的总结:烂完了,八股没背熟,更别谈应用方向的思考;算法题也没刷熟练。,第一次就面大厂,挂了还是挺难受的,直接给我整的没信心了,这个状态秋招能找到中小厂都知足了,还是继续沉淀吧。。。后续可能就是得找些中小厂多面面吧,好让自己不那么紧张。。。
查看8道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务