关于面试问设计模式

2020-04-18 10:58:47 +08:00
 zxc1234

面试官问,工作中用到哪些设计模式 我:单例模式用的比较多,用内部类实现 面试官问:还有呢 我:......(尴尬,没有了)

如果面试官问知道哪些设计模式,那还可以继续聊得下去,但是设计模式在工作的中应用就。。。。 想问下你们工作中都有用到哪些啊,我这边怎么感觉工作中用的不多啊

5569 次点击
所在节点    程序员
35 条回复
janxin
2020-04-18 11:04:53 +08:00
比较多的单例,工厂,建造者,组合,装饰器,适配器,代理

这些应该基本上经常会用的吧
twoconk
2020-04-18 11:07:51 +08:00
实际工作中可能需要经过多次刻意练习使用,才能回答好这个问题,不然确实是不好回答
wushigejiajia01
2020-04-18 11:08:29 +08:00
单例,工厂,策略,代理
MinQ
2020-04-18 11:56:18 +08:00
设计模式?啥是设计模式?
Cmdhelp
2020-04-18 12:03:26 +08:00
用好了提高代码结构,用不好 写出四不像,画蛇添足,,,,,,,作为一名老咸鱼,用到的设计模式也挺少
geekvcn
2020-04-18 12:10:24 +08:00
入门知识真的很便宜,都有明码标价
https://item.jd.com/10079261.html
Junh
2020-04-18 12:10:54 +08:00
我也被问到了,能说出几个,不过问我观察者模式和发布订阅者模式的区别的时候懵了(因为印象中好像没啥区别,后来查资料知道是有些区别的),我面的小公司,前端
kmyzzy
2020-04-18 13:07:42 +08:00
要我我就直接说,这些没卵用
iFlicker
2020-04-18 13:32:58 +08:00
用到的多啊。。。单例 工厂 观察者 代理 建造者
alamaya
2020-04-18 13:38:27 +08:00
不如反问一下面试官,为啥 java 有这么多设计模式
findmyself
2020-04-18 13:39:23 +08:00
@kmyzzy 可以用于扯淡
wellsc
2020-04-18 13:41:45 +08:00
货物崇拜编程
guaiZhang
2020-04-18 13:48:27 +08:00
@kmyzzy 不然怎么造火箭
aguesuka
2020-04-18 14:05:34 +08:00
spring-beans,单例工厂,spring-mvc mvc 过滤器,spring-aop 代理。把用到的框架的设计模式讲出来就行
xingheng
2020-04-18 14:05:58 +08:00
个人认为你只回答了一个“单例用的比较多”确实是减分的,首先“单例”并不是一个很好的常用的设计模式,不应该被大量使用,这个问题在 SO 上有一个很大关注度的讨论,可以去看看。

了解设计模式是有必要的,它跟语言和框架都有关系,好的框架大都是在主流的设计模式上建立起来的,设计模式在通用性和测试的问题上会有比较大的帮助。

至于有哪些设计模式,我觉得你应该搜索“<lang> design patterns”,不同语言下结果会有一些差异。

不用设计模式?单纯的面向过程式或者 OOP 是非常 ugly 的,其实很大程度上我觉得你已经用过一些了,只是不知道会有对应的名字而已。。。
leafShimple
2020-04-18 15:09:40 +08:00
= = 看了书 知道 我只能吹吹 我才用过 5 6 种,大部分遇见问题都是按照那种抽象一层或者几层的思路来解决问题
useben
2020-04-18 16:56:25 +08:00
@janxin +1
guyeu
2020-04-18 16:56:51 +08:00
vvvvww
2020-04-18 17:19:39 +08:00
面试官可能更希望考察你对多态的理解和运用,而单例这种创建型的设计模式不太能体现到
Jrue0011
2020-04-18 17:22:49 +08:00
工厂、策略、代理、门面、建造者、适配器、责任链,写企业应用的话倒是经常有用到。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/663689

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX