Redian新闻
>
面试常考哪些java的design pattern
avatar
面试常考哪些java的design pattern# JobHunting - 待字闺中
j*3
1
临时抱抱佛脚吧。。。
偶只知道singleton
请各位大家指点。。。
avatar
j*3
2
还有factory
avatar
l*4
3
我知道的还有adaptor,decrator

【在 j**********3 的大作中提到】
: 还有factory
avatar
j*3
4
谢谢补充!

【在 l***4 的大作中提到】
: 我知道的还有adaptor,decrator
avatar
x*s
5
能把singleton写对了的人也不多,虽然网上有现成的答案。。。更不要说别的了
avatar
j*3
6
可是会问很多7788我都没听过的。。。

【在 x*****s 的大作中提到】
: 能把singleton写对了的人也不多,虽然网上有现成的答案。。。更不要说别的了
avatar
m*l
7
我一直觉得design pattern是功力,要慢慢练的。这种东西用的多了你面试时候自然会
表现出来的,面对设计题的时候会和不会差很多。而且现在小公司pair program的面试
方式越来越多了。
avatar
w*r
8
getInstance()
我就会写这个,天天写
就会singlton了
avatar
r*s
9
design pattern就是扯淡。这个pattern那个pattern,老子从来没用过。没有pattern
就写不了程序了?哪个公司都不会考什么design pattern,因为没有人写程序的时候硬
套什么pattern。
所以flg只考算法。
avatar
d*k
10
factory and abstract factory, strategy, facade, repository
其实很多平时都用,只不过你不会认为用了design pattern

【在 j**********3 的大作中提到】
: 临时抱抱佛脚吧。。。
: 偶只知道singleton
: 请各位大家指点。。。

avatar
w*r
11
算法太难了

pattern

【在 r****s 的大作中提到】
: design pattern就是扯淡。这个pattern那个pattern,老子从来没用过。没有pattern
: 就写不了程序了?哪个公司都不会考什么design pattern,因为没有人写程序的时候硬
: 套什么pattern。
: 所以flg只考算法。

avatar
j*3
12
被pair program过。。。

【在 m*****l 的大作中提到】
: 我一直觉得design pattern是功力,要慢慢练的。这种东西用的多了你面试时候自然会
: 表现出来的,面对设计题的时候会和不会差很多。而且现在小公司pair program的面试
: 方式越来越多了。

avatar
j*3
13
我也觉得很扯淡。。。
但没办法啊

pattern

【在 r****s 的大作中提到】
: design pattern就是扯淡。这个pattern那个pattern,老子从来没用过。没有pattern
: 就写不了程序了?哪个公司都不会考什么design pattern,因为没有人写程序的时候硬
: 套什么pattern。
: 所以flg只考算法。

avatar
j*3
14
谢谢补充!

【在 d**k 的大作中提到】
: factory and abstract factory, strategy, facade, repository
: 其实很多平时都用,只不过你不会认为用了design pattern

avatar
f*e
15
DAO, DI, IOC都算pattern的。

pattern

【在 r****s 的大作中提到】
: design pattern就是扯淡。这个pattern那个pattern,老子从来没用过。没有pattern
: 就写不了程序了?哪个公司都不会考什么design pattern,因为没有人写程序的时候硬
: 套什么pattern。
: 所以flg只考算法。

avatar
j*o
16
99%考你singleton
avatar
j*3
17
谢谢!
MVC也是?

【在 f*****e 的大作中提到】
: DAO, DI, IOC都算pattern的。
:
: pattern

avatar
j*3
18
被问过别的。。。
忘记是啥了。。。

【在 j******o 的大作中提到】
: 99%考你singleton
avatar
f*e
19
java ee pattern,我觉得很有用的。singleton也是Jee的pattern之一,session fact
ory bean之类的。

【在 j**********3 的大作中提到】
: 谢谢!
: MVC也是?

avatar
z*e
20

已知的patterns有500多种,还有各种db design patterns
我不认为你可以把这些全部掌握
比较生僻的patterns:
marker interface
bridge
adapter
这几个都有具体的对应,看你知道不知道了
这几个patterns都曾经在这个版面面经里面出现过
古德霸面就有可能问你最后一个

【在 j**********3 的大作中提到】
: 谢谢!
: MVC也是?

avatar
z*e
21
你肯定用过,只不过你不知道叫那个名字而已
比如marker interface就是一个pattern
一般也可以写,写出来程序比较难看而已
不用ioc和用了ioc,阅读起来难度完全在两个层面
不用spring的core java代码,屎坑不比c,python那些少多少

pattern

【在 r****s 的大作中提到】
: design pattern就是扯淡。这个pattern那个pattern,老子从来没用过。没有pattern
: 就写不了程序了?哪个公司都不会考什么design pattern,因为没有人写程序的时候硬
: 套什么pattern。
: 所以flg只考算法。

avatar
g*e
22

pattern
re
需要的时候类似的自然而然就写出来了。不需要的时候硬套就没意思了

【在 r****s 的大作中提到】
: design pattern就是扯淡。这个pattern那个pattern,老子从来没用过。没有pattern
: 就写不了程序了?哪个公司都不会考什么design pattern,因为没有人写程序的时候硬
: 套什么pattern。
: 所以flg只考算法。

avatar
z*e
23
给自己找这种理由有啥意思?
算法平常都不用,不一样会了?
别告诉我说用了很多递归,我递归从毕业之后工作里面就没写过
这个比算法抽象,但是要说难,还真不好说难

【在 g*********e 的大作中提到】
:
: pattern
: re
: 需要的时候类似的自然而然就写出来了。不需要的时候硬套就没意思了

avatar
g*e
24

1 算法用不用看你做啥工作。做web数据为主估计是不怎么用,做计算模拟仿真就用得
多。
2 算法是人类智慧的抽象,放之四海而皆准。design pattern就是砌砖工交流怎么摆砖
搭得快又牢,红砖黑砖每种砖搭法还不一样,是特殊环境下的特殊经验,价值不大,会
点pattern也就算是熟练工,没多少Intellectual value。design pattern是为了补偿
语言的缺陷而出现的,而语言是人创造的,归根结底pattrn就是填上前人挖的烂坑。

【在 z****e 的大作中提到】
: 给自己找这种理由有啥意思?
: 算法平常都不用,不一样会了?
: 别告诉我说用了很多递归,我递归从毕业之后工作里面就没写过
: 这个比算法抽象,但是要说难,还真不好说难

avatar
z*e
25
1和2冲突了
一个放之四海而皆准,结果居然不怎么用?
那还准啥?
dp的好处在于,一个经验总结之后能不能执行下去
决定了屎坑数量的多少,比如c++的系统
绝大多数都是屎坑,这就是没有办法贯彻dp的产物
所以很多人就在屎坑中打滚,不停地重复前人犯过的错误

【在 g*********e 的大作中提到】
:
: 1 算法用不用看你做啥工作。做web数据为主估计是不怎么用,做计算模拟仿真就用得
: 多。
: 2 算法是人类智慧的抽象,放之四海而皆准。design pattern就是砌砖工交流怎么摆砖
: 搭得快又牢,红砖黑砖每种砖搭法还不一样,是特殊环境下的特殊经验,价值不大,会
: 点pattern也就算是熟练工,没多少Intellectual value。design pattern是为了补偿
: 语言的缺陷而出现的,而语言是人创造的,归根结底pattrn就是填上前人挖的烂坑。

avatar
g*e
26

你不怎么用算法不代表别人也不用。比如我平时就要写些graph算法,toposort,
isormorphism,动态规划,用到max flow。
你估计java写多了,只会搭积木。结果连积木本身怎么做的都忘了。线程进程还分得清
吗?

【在 z****e 的大作中提到】
: 1和2冲突了
: 一个放之四海而皆准,结果居然不怎么用?
: 那还准啥?
: dp的好处在于,一个经验总结之后能不能执行下去
: 决定了屎坑数量的多少,比如c++的系统
: 绝大多数都是屎坑,这就是没有办法贯彻dp的产物
: 所以很多人就在屎坑中打滚,不停地重复前人犯过的错误

avatar
j*3
27
老赵,你以前和我说过几个要看的design patten,我找不到了。都有哪几个?

【在 z****e 的大作中提到】
: 1和2冲突了
: 一个放之四海而皆准,结果居然不怎么用?
: 那还准啥?
: dp的好处在于,一个经验总结之后能不能执行下去
: 决定了屎坑数量的多少,比如c++的系统
: 绝大多数都是屎坑,这就是没有办法贯彻dp的产物
: 所以很多人就在屎坑中打滚,不停地重复前人犯过的错误

avatar
p*2
28

面试会考这些吗?

【在 j**********3 的大作中提到】
: 临时抱抱佛脚吧。。。
: 偶只知道singleton
: 请各位大家指点。。。

avatar
z*e
29
你不是说放之四海而皆准么?
怎么就到我这就不准了?
这个四海貌似很小阿,连我这都覆盖不了还四海?
就这点视野?
线程和进程这个问题很好笑阿,因为当你经常同时启动几十几百个process的时候
谁还在乎那一两个线程?听说过independent failure of components没?
想知道怎么做积木,应该去学物理,cs算法是优化理论
属于扯蛋的一种,知道了也不能造出积木来

【在 g*********e 的大作中提到】
:
: 你不怎么用算法不代表别人也不用。比如我平时就要写些graph算法,toposort,
: isormorphism,动态规划,用到max flow。
: 你估计java写多了,只会搭积木。结果连积木本身怎么做的都忘了。线程进程还分得清
: 吗?

avatar
g*e
30

三哥多的 主用java的场会考

【在 p*****2 的大作中提到】
:
: 面试会考这些吗?

avatar
z*e
31
阿三总是把好位置给占了,然后留下老中在屎坑中打滚哀嚎

【在 g*********e 的大作中提到】
:
: 三哥多的 主用java的场会考

avatar
g*e
32

四海皆准是说算法的客观性与绝对性,dp是人为的经验总结,是一定时期内的特殊产物。
至于你用不用算法,关我鸟事。
不过有一点你说的没错,想知道怎么做积木,就得从数学物理二极管门电路计组原理开
始build up ,直接学java容易吊儿郎当。
你语文不太行

【在 z****e 的大作中提到】
: 你不是说放之四海而皆准么?
: 怎么就到我这就不准了?
: 这个四海貌似很小阿,连我这都覆盖不了还四海?
: 就这点视野?
: 线程和进程这个问题很好笑阿,因为当你经常同时启动几十几百个process的时候
: 谁还在乎那一两个线程?听说过independent failure of components没?
: 想知道怎么做积木,应该去学物理,cs算法是优化理论
: 属于扯蛋的一种,知道了也不能造出积木来

avatar
z*e
33
最终是不是人来执行这个东西?
人的错误你是否要考虑进去?
你知道dp用在c++比用在java还早么?
四人帮那本书我看的时候就是看c++版本而非java版本的
最早是smalltalk,而不是什么c++,这个东西是跟paradigm互相依存的
而不是具体到某个语言,任何oop的语言都会用相同的patterns
java只是比较prevail而已,所以很多人都用java来impl这个东西
并不代表这个东西只是java独有,c++不能写singleton这些?
至于怎么做积木,赶紧给我拉倒,你的物理学得怎样?
理论本质是应用数学,物理系还是太高级了,应该从数学系开始学
直接学物理比较容易吊儿郎当了

物。

【在 g*********e 的大作中提到】
:
: 四海皆准是说算法的客观性与绝对性,dp是人为的经验总结,是一定时期内的特殊产物。
: 至于你用不用算法,关我鸟事。
: 不过有一点你说的没错,想知道怎么做积木,就得从数学物理二极管门电路计组原理开
: 始build up ,直接学java容易吊儿郎当。
: 你语文不太行

avatar
z*e
34
我们来玩个游戏好不好
你来证明一下什么是放之四海,然后我借用你的逻辑
来证明dp是怎么放之四海而皆准的
我甚至不需要更改你的步骤,直接用
你能说算法纺织四海而皆准,我就有办法证明dp同样放之四海而皆准

物。

【在 g*********e 的大作中提到】
:
: 四海皆准是说算法的客观性与绝对性,dp是人为的经验总结,是一定时期内的特殊产物。
: 至于你用不用算法,关我鸟事。
: 不过有一点你说的没错,想知道怎么做积木,就得从数学物理二极管门电路计组原理开
: 始build up ,直接学java容易吊儿郎当。
: 你语文不太行

avatar
j*3
35
我被考过。。。

【在 p*****2 的大作中提到】
:
: 面试会考这些吗?

avatar
j*3
36
哪些常考啊。。。去年你告诉我过2,3个,我忘记了。。。。。

【在 z****e 的大作中提到】
: 我们来玩个游戏好不好
: 你来证明一下什么是放之四海,然后我借用你的逻辑
: 来证明dp是怎么放之四海而皆准的
: 我甚至不需要更改你的步骤,直接用
: 你能说算法纺织四海而皆准,我就有办法证明dp同样放之四海而皆准
:
: 物。

avatar
z*e
37
2-3个肯定不行的,如果别人问的话
一般那23个先扫一遍过去比较靠谱
不过一般dp问题不太可能问没太多经验的人
他问了什么模式?

【在 j**********3 的大作中提到】
: 哪些常考啊。。。去年你告诉我过2,3个,我忘记了。。。。。
avatar
d*k
38
你不用就不要说人家是扯谈。作为一个team,很多人一起写code的时候,就知道code写
得好不好,很大程度上不是取决于你的dp算法,而是code的结构。试问工作了有多少机
会给你写dp?大部分时候解决的是business logic。
为什么觉得flg考的就是对就是好,凭什么它不考的别人考就是错?

pattern

【在 r****s 的大作中提到】
: design pattern就是扯淡。这个pattern那个pattern,老子从来没用过。没有pattern
: 就写不了程序了?哪个公司都不会考什么design pattern,因为没有人写程序的时候硬
: 套什么pattern。
: 所以flg只考算法。

avatar
d*k
39
不清楚考什么,但如果平时需要看的时候我喜欢看这个
http://www.oodesign.com/

【在 j**********3 的大作中提到】
: 临时抱抱佛脚吧。。。
: 偶只知道singleton
: 请各位大家指点。。。

avatar
f*l
40
楼上的链接很简明清晰,赞
avatar
f*e
41
公司写code就是要像一个人写出来的,有固定的pattern。

【在 d******k 的大作中提到】
: 你不用就不要说人家是扯谈。作为一个team,很多人一起写code的时候,就知道code写
: 得好不好,很大程度上不是取决于你的dp算法,而是code的结构。试问工作了有多少机
: 会给你写dp?大部分时候解决的是business logic。
: 为什么觉得flg考的就是对就是好,凭什么它不考的别人考就是错?
:
: pattern

avatar
s*k
42
对设计java class来说,这东西相当重要。 你自己设计的也算是一种pattern

pattern

【在 r****s 的大作中提到】
: design pattern就是扯淡。这个pattern那个pattern,老子从来没用过。没有pattern
: 就写不了程序了?哪个公司都不会考什么design pattern,因为没有人写程序的时候硬
: 套什么pattern。
: 所以flg只考算法。

avatar
j*3
43
thx!

【在 d******k 的大作中提到】
: 不清楚考什么,但如果平时需要看的时候我喜欢看这个
: http://www.oodesign.com/

avatar
r*s
44
你应该尽早离开这个组。往framework里面填business logic是entry level码工/刚毕
业的学生干的事。

【在 d******k 的大作中提到】
: 你不用就不要说人家是扯谈。作为一个team,很多人一起写code的时候,就知道code写
: 得好不好,很大程度上不是取决于你的dp算法,而是code的结构。试问工作了有多少机
: 会给你写dp?大部分时候解决的是business logic。
: 为什么觉得flg考的就是对就是好,凭什么它不考的别人考就是错?
:
: pattern

avatar
r*s
45
这就是扯淡了,你工作过吗?各个组的business logic都不一样,怎么会有固定的
coding pattern用在不同的business?
我到过的公司,除了startup,稍微正规一点的,都没有见过全公司写code有固定
pattern这样的奇景。
startup那是因为实在找不到高手,不敢轻举妄动,只好在别人的code上改改算了。

【在 f*****e 的大作中提到】
: 公司写code就是要像一个人写出来的,有固定的pattern。
avatar
z*3
46
没错,但是看别人代码,code review就是senior的工作了
看别人代码时候,如果junior用了pattern,会容易阅读很多
差错率也少很多

【在 r****s 的大作中提到】
: 你应该尽早离开这个组。往framework里面填business logic是entry level码工/刚毕
: 业的学生干的事。

avatar
z*3
47
ioc就是一个pattern,你见过现在还有用java不用spring的么?
嗯,可能有吧,但是这种java的工作不去也罢
我做过一两个,代码看起来跟大便一样,基本上不可维护
外面工作机会一出来,我赶紧就跑了
连spring都不懂得用的java系统,能好到哪里去?
java很多patterns就是一个具体的实现类,你根本没有机会去自己写
iterator就是一个pattern,全世界人用iterator都是一个pattern
pattern也分,好的pattern都被封装起来了,变成一个具体的轮子
就跟好的数据结构也都被封装起来一样
对类库的熟悉程度直接决定了干活时候写代码的效率和质量
pattern这些都是以简化阅读代码难度为主要考量,而不是写起来有多容易
其实java本身也是因为读起来比其他语言容易,所以得以推广
手下没有几个刚毕业的在写代码?他们写的怎样?code review时候没有批一下?

【在 r****s 的大作中提到】
: 这就是扯淡了,你工作过吗?各个组的business logic都不一样,怎么会有固定的
: coding pattern用在不同的business?
: 我到过的公司,除了startup,稍微正规一点的,都没有见过全公司写code有固定
: pattern这样的奇景。
: startup那是因为实在找不到高手,不敢轻举妄动,只好在别人的code上改改算了。

avatar
s*y
48
mark
avatar
H*r
49
C++,硬件,统统给老中,lol

【在 z****e 的大作中提到】
: 阿三总是把好位置给占了,然后留下老中在屎坑中打滚哀嚎
avatar
a*0
50
请问 new grad会考design pattern吗?从来没学过怎么办呢?
avatar
r*s
51
这个不是hire/not hire的必要条件,要问也就是问一些最简单的。注意,面试这哥们
自己都可能不太懂,也就是瞎背了一些答案,所以不要纠缠,没听说过的pattern就说
没用过,无所谓,都是些装b的东西。没有哪个人coding的时候卡在pattern上。
Martin Fowler搞的那个thoughworks公司,半红不黑的,没啥动静。
常见的pattern看一本高中/community college level的书就够了,比如headfirst
design patterns。我老当年翻了翻,觉得都是bullshit。

【在 a**********0 的大作中提到】
: 请问 new grad会考design pattern吗?从来没学过怎么办呢?
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。