Redian新闻
>
准备总结一下design pattern了
avatar
k*x
3
望穿秋水啊,2爷赶紧的!
avatar
f*3
4
先mark为敬
avatar
M*5
5
二爷好人呐,等这个总结等好久了。。。个人觉得design pattern对于system design
还是很有帮助的。。。
avatar
p*2
6

大牛先回答一下我那几个问题?

【在 k***x 的大作中提到】
: 望穿秋水啊,2爷赶紧的!
avatar
B*5
7
This will be very useful~
avatar
k*x
8
面试中遇到的
1. Design an elevator systems (Akamai)
2. Design an online doctor appointment system (ZocDoc)
都因为设计题挂了

【在 p*****2 的大作中提到】
:
: 大牛先回答一下我那几个问题?

avatar
g*d
9
Elements of Programming Interviews 第一章是说这个的,这章是作为样本有电子版
合法下载的
avatar
p*y
11
怒赞啊!
二爷赶紧出手吧!
avatar
p*2
12
不出手。主要是积攒的迷惑太多了。需要解决一下了。
avatar
l*i
13
期待期待啊!!!!!
avatar
r*e
15
看具体工作
有一些是经常都用到的,singleton, factory, observer, traversal/visitor, etc

【在 l*****a 的大作中提到】
: 问一下你实际工作中有多少使用DP的经验?
: design Pattern, not dynamic programming

avatar
p*p
17
这个赞
avatar
p*2
18
先说CC150上的Singleton吧。
三个bug
1. _instance应该是static的
2. 应该定义private constructor
3. multi threading
再提两点:
1. 这个例子还包含了lazy initialization pattern
2. 这是老的Java Singleton的实现方式,新的方式是通过Enum来实现的
avatar
p*2
19

没这么快。我也是刚学。

【在 c********t 的大作中提到】
: 二爷快总结,我在线等,这周有面试。
avatar
p*2
20

挺多的。我准备分几个层次来说,感觉这样才能解决那些迷惑
1. design pattern
2. GoF
3. Java

【在 l*****a 的大作中提到】
: 问一下你实际工作中有多少使用DP的经验?
: design Pattern, not dynamic programming

avatar
g*e
21
enum比用private static class的方法有啥优势,不都是靠class loader实现的么?
enum还不能继承呢

【在 p*****2 的大作中提到】
: 先说CC150上的Singleton吧。
: 三个bug
: 1. _instance应该是static的
: 2. 应该定义private constructor
: 3. multi threading
: 再提两点:
: 1. 这个例子还包含了lazy initialization pattern
: 2. 这是老的Java Singleton的实现方式,新的方式是通过Enum来实现的

avatar
p*2
22

effective java

【在 g**e 的大作中提到】
: enum比用private static class的方法有啥优势,不都是靠class loader实现的么?
: enum还不能继承呢

avatar
g*e
23
Josh Bloch确实提到Java 1.5以后应该用enum。可是我觉得没啥优势,enum不能继承反
倒是个劣势。
singleton这个东西,我个人认为是anti pattern的,理由以前说过。

【在 p*****2 的大作中提到】
:
: effective java

avatar
w*i
24
赞二爷!
话说前两天刚囫囵吞枣的看了一遍head first design pattern
不过仍然云里雾里的,不得要领啊。。。
avatar
p*2
25

我现在看Design Patterns For Dummies,可能没你那个好。不过可能理解起来简单点

【在 w******i 的大作中提到】
: 赞二爷!
: 话说前两天刚囫囵吞枣的看了一遍head first design pattern
: 不过仍然云里雾里的,不得要领啊。。。

avatar
p*2
26

书里边把优点都说了吧,说了一大堆。话说enum经常要继承吗?我怎么觉得一般没必要
继承?
singleton有link吗?你以前说过的理由。

【在 g**e 的大作中提到】
: Josh Bloch确实提到Java 1.5以后应该用enum。可是我觉得没啥优势,enum不能继承反
: 倒是个劣势。
: singleton这个东西,我个人认为是anti pattern的,理由以前说过。

avatar
c*r
27
emun是thread safe,不用麻烦写double check blocking?

【在 g**e 的大作中提到】
: Josh Bloch确实提到Java 1.5以后应该用enum。可是我觉得没啥优势,enum不能继承反
: 倒是个劣势。
: singleton这个东西,我个人认为是anti pattern的,理由以前说过。

avatar
c*r
28
instance不一定非的是static吧,要看具体需求吧?static variable在使用
multithread时,设计不好会影响garbage collection?

【在 p*****2 的大作中提到】
: 先说CC150上的Singleton吧。
: 三个bug
: 1. _instance应该是static的
: 2. 应该定义private constructor
: 3. multi threading
: 再提两点:
: 1. 这个例子还包含了lazy initialization pattern
: 2. 这是老的Java Singleton的实现方式,新的方式是通过Enum来实现的

avatar
p*2
29

那你把代码编译一下看看?

【在 c********r 的大作中提到】
: instance不一定非的是static吧,要看具体需求吧?static variable在使用
: multithread时,设计不好会影响garbage collection?

avatar
c*r
30
用static final会好些?

【在 p*****2 的大作中提到】
:
: 那你把代码编译一下看看?

avatar
p*2
31
CC150的Factory method有更大的问题。
这个例子根本就不是design pattern。所以大家要注意了,CC150上的两个例子面试都
不能用。一定要注意。
现在看来CC150真是把双刃剑,里边的概念误导很多。很奇怪这样的作者是如何在
Google给别人面试的。
avatar
c*r
32
DP讲得确实有些坑爹

【在 p*****2 的大作中提到】
: CC150的Factory method有更大的问题。
: 这个例子根本就不是design pattern。所以大家要注意了,CC150上的两个例子面试都
: 不能用。一定要注意。
: 现在看来CC150真是把双刃剑,里边的概念误导很多。很奇怪这样的作者是如何在
: Google给别人面试的。

avatar
h*e
33
Head First Design Patterns讲得不错。
对Web company来说,一般MVC用的比较多。
avatar
c*t
34
singleton不是private constructor吗?如何继承?

【在 g**e 的大作中提到】
: Josh Bloch确实提到Java 1.5以后应该用enum。可是我觉得没啥优势,enum不能继承反
: 倒是个劣势。
: singleton这个东西,我个人认为是anti pattern的,理由以前说过。

avatar
G*l
35
我真不是要跟你们挑事,就算讨论design pattern,也不要讨论singleton这种臭名昭
著的好不好。那些用singlton的code,90%以上都是属于滥用的。Singleton最evil的就
是global state。本来有state这玩意就不太好,代码里面应该尽量避免state。你说一
个class是有state的易用易改低耦合还是没有state的好?这玩意还global state,真
是邪恶到家了。另外一个问题就是你怎么知道一定只要一个,就算现在只要一个不代表
将来是。打个比方,thread pool这种东西貌似Singleton很合适,但你怎么知道我不想
要两个thread pool来管不同的事情?
design pattern这种东西不结合实际项目经验就是纸上谈兵。有经验的随便问问就能看
出来,就算有了使用经验,说不定还是误用的。真要面试时候,对没经验的我就随便问
问,知道个1,2,3也就行了,不会期望太多,对有经验的如果问的细然后没答好就会
失望了。当然我比较nice一般不对人那样,但是总会遇到问难题想给人加分的或者有人
太拽看不下去或者单纯就是看阿三不顺眼。。。就几个简单的问题,为什么要用这个
pattern?是否达到了预期目的?有没有想过稍微改变一下用?用了之后产生了什么坏
处?如果没用而是用了x,y,z后来会如何?现在再让你来做你会怎么做?大多人都会
被问死。。。

【在 c********r 的大作中提到】
: 用static final会好些?
avatar
S*r
36
说得基本靠谱,赞同。
另外,Kenton Varda写过这个文章,我早年读过,算是关于songleton的一个比较全面
的综述。
http://www.object-oriented-security.org/lets-argue/singletons
peking2写综述之前,可以先借鉴一下

【在 G***l 的大作中提到】
: 我真不是要跟你们挑事,就算讨论design pattern,也不要讨论singleton这种臭名昭
: 著的好不好。那些用singlton的code,90%以上都是属于滥用的。Singleton最evil的就
: 是global state。本来有state这玩意就不太好,代码里面应该尽量避免state。你说一
: 个class是有state的易用易改低耦合还是没有state的好?这玩意还global state,真
: 是邪恶到家了。另外一个问题就是你怎么知道一定只要一个,就算现在只要一个不代表
: 将来是。打个比方,thread pool这种东西貌似Singleton很合适,但你怎么知道我不想
: 要两个thread pool来管不同的事情?
: design pattern这种东西不结合实际项目经验就是纸上谈兵。有经验的随便问问就能看
: 出来,就算有了使用经验,说不定还是误用的。真要面试时候,对没经验的我就随便问
: 问,知道个1,2,3也就行了,不会期望太多,对有经验的如果问的细然后没答好就会

avatar
c*t
37
在第几页? 俺找不到了

【在 p*****2 的大作中提到】
: CC150的Factory method有更大的问题。
: 这个例子根本就不是design pattern。所以大家要注意了,CC150上的两个例子面试都
: 不能用。一定要注意。
: 现在看来CC150真是把双刃剑,里边的概念误导很多。很奇怪这样的作者是如何在
: Google给别人面试的。

avatar
p*2
38

两个DP都坑爹

【在 c********r 的大作中提到】
: DP讲得确实有些坑爹
avatar
p*2
39

这个我不太赞同。几个问题需要思考
1. Singlton可不可以解决问题?
2. Singlton可以解决什么问题?
3. 不用Singlton如何解决?
我个人认为Singlton肯定是能少用就少用,能不用最好。但是,我认为还是有不少问题
用Singlton可以很好的解决。再说了C语言global variable漫天跑又如何?在C语言里
肯定也要尽量少用,但是避免不了不用。所以还是有用的。滥用那是另外一个问题。

【在 G***l 的大作中提到】
: 我真不是要跟你们挑事,就算讨论design pattern,也不要讨论singleton这种臭名昭
: 著的好不好。那些用singlton的code,90%以上都是属于滥用的。Singleton最evil的就
: 是global state。本来有state这玩意就不太好,代码里面应该尽量避免state。你说一
: 个class是有state的易用易改低耦合还是没有state的好?这玩意还global state,真
: 是邪恶到家了。另外一个问题就是你怎么知道一定只要一个,就算现在只要一个不代表
: 将来是。打个比方,thread pool这种东西貌似Singleton很合适,但你怎么知道我不想
: 要两个thread pool来管不同的事情?
: design pattern这种东西不结合实际项目经验就是纸上谈兵。有经验的随便问问就能看
: 出来,就算有了使用经验,说不定还是误用的。真要面试时候,对没经验的我就随便问
: 问,知道个1,2,3也就行了,不会期望太多,对有经验的如果问的细然后没答好就会

avatar
n*t
40
说实话C语言里面不太可能漫天跑。
大部分程序员那种情况下根本写不出一个中等规模以上的程序。

【在 p*****2 的大作中提到】
:
: 这个我不太赞同。几个问题需要思考
: 1. Singlton可不可以解决问题?
: 2. Singlton可以解决什么问题?
: 3. 不用Singlton如何解决?
: 我个人认为Singlton肯定是能少用就少用,能不用最好。但是,我认为还是有不少问题
: 用Singlton可以很好的解决。再说了C语言global variable漫天跑又如何?在C语言里
: 肯定也要尽量少用,但是避免不了不用。所以还是有用的。滥用那是另外一个问题。

avatar
p*2
41

How about Windows? 算比中等规模大吗?

【在 n******t 的大作中提到】
: 说实话C语言里面不太可能漫天跑。
: 大部分程序员那种情况下根本写不出一个中等规模以上的程序。

avatar
p*2
42

object oriented那章

【在 c********t 的大作中提到】
: 在第几页? 俺找不到了
avatar
p*2
43

能不能给个summary?我倒是觉得singleton挺好的。

【在 S*********r 的大作中提到】
: 说得基本靠谱,赞同。
: 另外,Kenton Varda写过这个文章,我早年读过,算是关于songleton的一个比较全面
: 的综述。
: http://www.object-oriented-security.org/lets-argue/singletons
: peking2写综述之前,可以先借鉴一下

avatar
g*g
44
真是写java的,singleton这么常见的东西就不该自己实现。
@Singleton annotation是写进EJB spec,一堆IoC架构都支持的东西,干嘛要重建轮子。
至于你要两个threadpool,没有问题。在IoC架构里,singleton无非是一个可植入的全
局变量的概念罢了,起两个不同变量名即可。Singleton除了其他Singleton的植入,是
不建议有非final的instance variable的,这主要为了避免多线程问题。
我想说的就是设计模式,既然可以抽象总结,大多也就可以由架构支持,并非都需要手
写的。

【在 G***l 的大作中提到】
: 我真不是要跟你们挑事,就算讨论design pattern,也不要讨论singleton这种臭名昭
: 著的好不好。那些用singlton的code,90%以上都是属于滥用的。Singleton最evil的就
: 是global state。本来有state这玩意就不太好,代码里面应该尽量避免state。你说一
: 个class是有state的易用易改低耦合还是没有state的好?这玩意还global state,真
: 是邪恶到家了。另外一个问题就是你怎么知道一定只要一个,就算现在只要一个不代表
: 将来是。打个比方,thread pool这种东西貌似Singleton很合适,但你怎么知道我不想
: 要两个thread pool来管不同的事情?
: design pattern这种东西不结合实际项目经验就是纸上谈兵。有经验的随便问问就能看
: 出来,就算有了使用经验,说不定还是误用的。真要面试时候,对没经验的我就随便问
: 问,知道个1,2,3也就行了,不会期望太多,对有经验的如果问的细然后没答好就会

avatar
M*6
45
期待中。。。二爷!!
avatar
z*3
46
thread pool显然是用享元flyweight模式
都pool了还singleton,thread的管理从来就不怎么用singleton
singleton是组件用的多,尤其是stateless的组件
大部分thread的管理都是main在管,main自身搞成singleton就搞笑了
如果要开多个pool,就直接上多个instance就好了

【在 G***l 的大作中提到】
: 我真不是要跟你们挑事,就算讨论design pattern,也不要讨论singleton这种臭名昭
: 著的好不好。那些用singlton的code,90%以上都是属于滥用的。Singleton最evil的就
: 是global state。本来有state这玩意就不太好,代码里面应该尽量避免state。你说一
: 个class是有state的易用易改低耦合还是没有state的好?这玩意还global state,真
: 是邪恶到家了。另外一个问题就是你怎么知道一定只要一个,就算现在只要一个不代表
: 将来是。打个比方,thread pool这种东西貌似Singleton很合适,但你怎么知道我不想
: 要两个thread pool来管不同的事情?
: design pattern这种东西不结合实际项目经验就是纸上谈兵。有经验的随便问问就能看
: 出来,就算有了使用经验,说不定还是误用的。真要面试时候,对没经验的我就随便问
: 问,知道个1,2,3也就行了,不会期望太多,对有经验的如果问的细然后没答好就会

avatar
z*3
47
不是java注重pattern
是j2ee注重pattern
问你pattern的人,潜意识里期待你能说出j2ee core pattern
或者更高级一点的
比如marker interface,这也是一个pattern哦
实话说,gof那些模式不少是写给写ui的人看的
也就是如果你跟swing这些东西打交道的话
gof那21个基础模式会很亲切
尤其是什么鸟observer之类的

【在 p*****2 的大作中提到】
: 面试会碰到哪些?
: 工作常用的有哪些?
: 哪些可以忽略?
: 为什么Java那么注重design pattern?
: 准备先拿CC150开刀。
: Design Pattern 1: 从CC150开始
: http://blog.sina.com.cn/s/blog_b9285de20101jyx5.html
: Design Pattern 3: Three layers of design pattern
: http://blog.sina.com.cn/s/blog_b9285de20101k0ql.html

avatar
d*x
48
这个我也不完全同意
预设的extensibility往往是过度设计的原因。你怎么知道人家知不知道以后不会有两
个thread pool?
在一个两万行代码的小项目里面我用一个singleton来管理global preference,有什么
大不了?
虽然恶俗,但是我还是想说,模式是死的,人是活的,用与不用,要看项目的具体情形
而定,没有什么一成不变。

【在 G***l 的大作中提到】
: 我真不是要跟你们挑事,就算讨论design pattern,也不要讨论singleton这种臭名昭
: 著的好不好。那些用singlton的code,90%以上都是属于滥用的。Singleton最evil的就
: 是global state。本来有state这玩意就不太好,代码里面应该尽量避免state。你说一
: 个class是有state的易用易改低耦合还是没有state的好?这玩意还global state,真
: 是邪恶到家了。另外一个问题就是你怎么知道一定只要一个,就算现在只要一个不代表
: 将来是。打个比方,thread pool这种东西貌似Singleton很合适,但你怎么知道我不想
: 要两个thread pool来管不同的事情?
: design pattern这种东西不结合实际项目经验就是纸上谈兵。有经验的随便问问就能看
: 出来,就算有了使用经验,说不定还是误用的。真要面试时候,对没经验的我就随便问
: 问,知道个1,2,3也就行了,不会期望太多,对有经验的如果问的细然后没答好就会

avatar
d*x
49
observer就是listener啊,亲
再进一步的,其实listener就是面向对象的callback啊
这东西肿么会是ui专用呢?

【在 z*******3 的大作中提到】
: 不是java注重pattern
: 是j2ee注重pattern
: 问你pattern的人,潜意识里期待你能说出j2ee core pattern
: 或者更高级一点的
: 比如marker interface,这也是一个pattern哦
: 实话说,gof那些模式不少是写给写ui的人看的
: 也就是如果你跟swing这些东西打交道的话
: gof那21个基础模式会很亲切
: 尤其是什么鸟observer之类的

avatar
d*x
50
windows代码咱也没有
但是可以期待的是至少没有global variable漫天跑

【在 p*****2 的大作中提到】
:
: 能不能给个summary?我倒是觉得singleton挺好的。

avatar
p*2
51

可能漫天跑说过了,我的意思是global variable用了很多。这种东西当然能避免就避
免,但是很多情况下还是不能避免的。

【在 d**********x 的大作中提到】
: windows代码咱也没有
: 但是可以期待的是至少没有global variable漫天跑

avatar
p*2
52

模式是死的,人是活的,用与不用,要看项目的具体情形
顶这句话。

【在 d**********x 的大作中提到】
: 这个我也不完全同意
: 预设的extensibility往往是过度设计的原因。你怎么知道人家知不知道以后不会有两
: 个thread pool?
: 在一个两万行代码的小项目里面我用一个singleton来管理global preference,有什么
: 大不了?
: 虽然恶俗,但是我还是想说,模式是死的,人是活的,用与不用,要看项目的具体情形
: 而定,没有什么一成不变。

avatar
p*2
53

我也想说这个。而且observer也不是OO专用的。C里面照样有。

【在 d**********x 的大作中提到】
: observer就是listener啊,亲
: 再进一步的,其实listener就是面向对象的callback啊
: 这东西肿么会是ui专用呢?

avatar
y*n
54
Design Pattern是个不错的话题,有兴趣一些研习一下。
N久之前,曾经囫囵吞枣地看过一些,现在都忘得差不多了。
avatar
p*2
55

等待大牛的高见。

【在 y****n 的大作中提到】
: Design Pattern是个不错的话题,有兴趣一些研习一下。
: N久之前,曾经囫囵吞枣地看过一些,现在都忘得差不多了。

avatar
b*d
56
singleton is bad....
1) no real testability
2) global state
3) more...
modern java use Dependency injection techs, and such singleton is
transferred into singleton scope, to solve all such issues....
avatar
p*2
57

有个问题很有趣。我认为应该分三个层次去看design pattern
1. general design pattern
2. GoF design pattern (OO design pattern)
3. language design patter (such as Java, C++, C etc.)
很多时候大家讨论都不在一个层次上。
如果从Java design pattern来说,core java主要是用什么DI framework来解决
Singleton的问题呢?

【在 b*******d 的大作中提到】
: singleton is bad....
: 1) no real testability
: 2) global state
: 3) more...
: modern java use Dependency injection techs, and such singleton is
: transferred into singleton scope, to solve all such issues....

avatar
c*r
58
2爷 靠你了 !
avatar
z*3
59
adapter用得更多
我没说是专用,说的是ui里面用得比较多
其他地方用得比较少,或者说你需要直接动手去搞的比较少
你在backend里面用过几次listener?

【在 d**********x 的大作中提到】
: observer就是listener啊,亲
: 再进一步的,其实listener就是面向对象的callback啊
: 这东西肿么会是ui专用呢?

avatar
z*3
60

core java一样用spring
guice还有其他的ejb容器也可以
@Singleton
scope = singleton
.in(Singleton.class)

【在 p*****2 的大作中提到】
:
: 有个问题很有趣。我认为应该分三个层次去看design pattern
: 1. general design pattern
: 2. GoF design pattern (OO design pattern)
: 3. language design patter (such as Java, C++, C etc.)
: 很多时候大家讨论都不在一个层次上。
: 如果从Java design pattern来说,core java主要是用什么DI framework来解决
: Singleton的问题呢?

avatar
p*2
61

大牛说说core java用srping的情况普遍吗?难道现在core java为了不用写singleton
都用spring吗?

【在 z*******3 的大作中提到】
:
: core java一样用spring
: guice还有其他的ejb容器也可以
: @Singleton
: scope = singleton
: .in(Singleton.class)

avatar
z*3
62
用得不少
很多人认为要尽一切可能用spring
不能说为了不写singleton用spring
除此之外还有额外的好处
比如spring同时也实现了抽象工厂模式,剥离了类之间的耦合
spring是一堆东西的集合
using a factory pattern
using a service locator pattern
using a dependency injection, for example:
a constructor injection
a setter injection
an interface injection
using a contextualized lookup

singleton

【在 p*****2 的大作中提到】
:
: 大牛说说core java用srping的情况普遍吗?难道现在core java为了不用写singleton
: 都用spring吗?

avatar
p*2
63

这样呀。那Spring看来也是必须的功课了。

【在 z*******3 的大作中提到】
: 用得不少
: 很多人认为要尽一切可能用spring
: 不能说为了不写singleton用spring
: 除此之外还有额外的好处
: 比如spring同时也实现了抽象工厂模式,剥离了类之间的耦合
: spring是一堆东西的集合
: using a factory pattern
: using a service locator pattern
: using a dependency injection, for example:
: a constructor injection

avatar
d*x
65
当然,ui里面都是事件,listener听事件比较多。
socket连接改变状态的时候一堆listener,解析xml的时候也是一堆listener,当然这
些可以extend子类来完成,看lib设计者的偏好了。

【在 z*******3 的大作中提到】
: adapter用得更多
: 我没说是专用,说的是ui里面用得比较多
: 其他地方用得比较少,或者说你需要直接动手去搞的比较少
: 你在backend里面用过几次listener?

avatar
y*n
66
都忘光了,还怎么高见呀?
倒是很想有时间温习一下。

【在 p*****2 的大作中提到】
:
: 这样呀。那Spring看来也是必须的功课了。

avatar
p*2
67

大牛工作一点不用吗?

【在 y****n 的大作中提到】
: 都忘光了,还怎么高见呀?
: 倒是很想有时间温习一下。

avatar
f*n
68
mark
avatar
y*n
69
简单的用过一些,singleton,adapter,builder之类的。
从来没有认真想过这些东西各自的优势,也没总结过。
甚至有时见了别人用的design pattern,叫不上名来。

【在 p*****2 的大作中提到】
:
: 大牛工作一点不用吗?

avatar
b*t
70
必须mark
avatar
p*2
71
第一部分写完了。更新在原帖里了。
avatar
p*2
72
发了个帖子被删了。更新在这里吧。安全一些
avatar
b*u
73
最近面过一个和这个相关的题:
一个bst里有重复节点,要求输出总共重复次数
本身很简单,inorder一边维护一个counter就行了。
附加问题:如果在bst里,很多其他方法都要调用inorder,怎样generalize inorder方法
答案是设计一个接口visitor
avatar
p*2
74

方法
多谢。看来大牛visitor很熟呀。我好像昨天看了一下,感觉不常用。

【在 b*****u 的大作中提到】
: 最近面过一个和这个相关的题:
: 一个bst里有重复节点,要求输出总共重复次数
: 本身很简单,inorder一边维护一个counter就行了。
: 附加问题:如果在bst里,很多其他方法都要调用inorder,怎样generalize inorder方法
: 答案是设计一个接口visitor

avatar
b*u
75
不牛,附加题直接跪了
这个是面试官讲的答案 -_-!

【在 p*****2 的大作中提到】
:
: 方法
: 多谢。看来大牛visitor很熟呀。我好像昨天看了一下,感觉不常用。

avatar
d*x
76
都看工作领域。。。
visitor我手边的例子就是解析网页之后,遍历dom tree然后将class为ooxx的元素
handle全部提出来,或者对这些种类的元素做某些改变

inorder

【在 p*****2 的大作中提到】
:
: 方法
: 多谢。看来大牛visitor很熟呀。我好像昨天看了一下,感觉不常用。

avatar
p*2
77

牛。你是用什么语言呀?

【在 d**********x 的大作中提到】
: 都看工作领域。。。
: visitor我手边的例子就是解析网页之后,遍历dom tree然后将class为ooxx的元素
: handle全部提出来,或者对这些种类的元素做某些改变
:
: inorder

avatar
d*x
78
java/cpp

【在 p*****2 的大作中提到】
:
: 牛。你是用什么语言呀?

avatar
p*2
79

请问你怎么将dom tree里的class变为visitable的呢?

【在 d**********x 的大作中提到】
: java/cpp
avatar
p*2
80

方法
附加问题:如果在bst里,很多其他方法都要调用inorder,怎样generalize inorder方法
答案是设计一个接口visitor
能不能详细说说需求。最好能举个例子。

【在 b*****u 的大作中提到】
: 最近面过一个和这个相关的题:
: 一个bst里有重复节点,要求输出总共重复次数
: 本身很简单,inorder一边维护一个counter就行了。
: 附加问题:如果在bst里,很多其他方法都要调用inorder,怎样generalize inorder方法
: 答案是设计一个接口visitor

avatar
p*2
81

请问这两题跟DP有什么关系呀?

【在 k***x 的大作中提到】
: 面试中遇到的
: 1. Design an elevator systems (Akamai)
: 2. Design an online doctor appointment system (ZocDoc)
: 都因为设计题挂了

avatar
p*2
82

子。
如果面试的话还是会手写吧?

【在 g*****g 的大作中提到】
: 真是写java的,singleton这么常见的东西就不该自己实现。
: @Singleton annotation是写进EJB spec,一堆IoC架构都支持的东西,干嘛要重建轮子。
: 至于你要两个threadpool,没有问题。在IoC架构里,singleton无非是一个可植入的全
: 局变量的概念罢了,起两个不同变量名即可。Singleton除了其他Singleton的植入,是
: 不建议有非final的instance variable的,这主要为了避免多线程问题。
: 我想说的就是设计模式,既然可以抽象总结,大多也就可以由架构支持,并非都需要手
: 写的。

avatar
b*l
83
嗨,23种DP我可记不住,记住比较常用的几种是不是就可以了?
avatar
p*2
84

我觉得有些不用记自然就会用
有些会常用
有些会很少用,甚至用不到
关键是面试会出现的要记住

【在 b*******l 的大作中提到】
: 嗨,23种DP我可记不住,记住比较常用的几种是不是就可以了?
avatar
b*l
85
“以上所谈的DP跟我们的日常工作息息相关,就算你没有学过DP,你其实已经不自觉的
DP了。”
这话说的非常对,虽然工作中用过一些,但不知道用的是什么,记不住名字,除了
Singleton。上年纪了记性差。。。。。

【在 p*****2 的大作中提到】
:
: 我觉得有些不用记自然就会用
: 有些会常用
: 有些会很少用,甚至用不到
: 关键是面试会出现的要记住

avatar
d*x
86
呃,啥意思?
浏览器代码里这个事情是很自然的。。。
至于刚才我说的那个class,不是cpp里面的class,只是html element的一个标识而已

【在 p*****2 的大作中提到】
:
: 我觉得有些不用记自然就会用
: 有些会常用
: 有些会很少用,甚至用不到
: 关键是面试会出现的要记住

avatar
p*2
87

所以你这个不是visitor pattern吧?只是tree的traverse吧?我看了一下,visitor
pattern不是那么好用的。

【在 d**********x 的大作中提到】
: 呃,啥意思?
: 浏览器代码里这个事情是很自然的。。。
: 至于刚才我说的那个class,不是cpp里面的class,只是html element的一个标识而已

avatar
d*x
88
你可以看一下wiki上的那个tree visitor的例子,大概就那德行。

而已

【在 p*****2 的大作中提到】
:
: 所以你这个不是visitor pattern吧?只是tree的traverse吧?我看了一下,visitor
: pattern不是那么好用的。

avatar
p*2
89

我刚才就是看了wiki的例子。你的TreeNode需要加入accept函数,而且他们应该
implement一个visitable的interface。因为你访问的是DOM tree,所以我想知道你如
果加入accept函数进去的。

【在 d**********x 的大作中提到】
: 你可以看一下wiki上的那个tree visitor的例子,大概就那德行。
:
: 而已

avatar
d*x
90
不是我加的
代码就是这么设计的。。。traverse的同时每个node可以接受一个visitor
不过那个具体函数名我记不清了,不是accept。

【在 p*****2 的大作中提到】
:
: 我刚才就是看了wiki的例子。你的TreeNode需要加入accept函数,而且他们应该
: implement一个visitable的interface。因为你访问的是DOM tree,所以我想知道你如
: 果加入accept函数进去的。

avatar
p*2
91

这样呀 明白了 dom实现了visitor了

【在 d**********x 的大作中提到】
: 不是我加的
: 代码就是这么设计的。。。traverse的同时每个node可以接受一个visitor
: 不过那个具体函数名我记不清了,不是accept。

avatar
h*0
92
轻松一刻
:) 我就记住cc150里面的那量, 有次面,
问:知道那些,
答: A and B,
问:那说说 C。
无语!!

【在 p*****2 的大作中提到】
:
: 这样呀 明白了 dom实现了visitor了

avatar
p*2
93

哈哈。貌似hulu的风格。

【在 h********0 的大作中提到】
: 轻松一刻
: :) 我就记住cc150里面的那量, 有次面,
: 问:知道那些,
: 答: A and B,
: 问:那说说 C。
: 无语!!

avatar
J*o
94
马一下二爷的帖
avatar
m*k
95
design a file system ,
因此而挂。

【在 k***x 的大作中提到】
: 面试中遇到的
: 1. Design an elevator systems (Akamai)
: 2. Design an online doctor appointment system (ZocDoc)
: 都因为设计题挂了

avatar
p*2
96

这个不算design pattern的吧?file system一般都不是OO写的吧?

【在 m*****k 的大作中提到】
: design a file system ,
: 因此而挂。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。