Design Pattern 2: Procedural, OO and Functional programming# JobHunting - 待字闺中p*22013-03-15 07:031 楼写了第二篇。单独发一贴吧。http://blog.sina.com.cn/s/blog_b9285de20101jzrn.html
x*w2013-03-15 07:032 楼二爷还不睡?【在 p*****2 的大作中提到】: 写了第二篇。单独发一贴吧。: http://blog.sina.com.cn/s/blog_b9285de20101jzrn.html
p*22013-03-15 07:035 楼我一学东西的时候就睡眠好差,脑子停不下来。这两天工作上也有新东西要学,每天睡眠时间跟Leetcode差不多了。【在 x*********w 的大作中提到】: : 二爷还不睡?
g*g2013-03-15 07:037 楼你对设计模式的理解有误区。设计模式是比language construct更高层次,即常见实现的抽象总结。不同语言的取舍不同,这就造成了一种语言的一个复杂实现,另一种语言可能直接做进了语言的特性。比如Singleton只于Java和Scala,前者是复杂实现,后者只需要一个关键字。在这个层面上,你说DP是为了弥补语言特性没有错。但你没有意识到两个东西。一是当一个实现可以抽象总结之后,就可以用类库来实现,在类库之上可以提供更高的灵活性和更强的功能,在使用上并不会比没有在语言特性上实现的更繁琐。举个例子就是@Singleton是ejb的spec,在java里你同样可以一个annotation把一个类做成Singleton,包括spring/Guice在内的DI类库都提供了支持,而DI的功能已经远远超出了Singleton的范畴。二是DP抽象总结的很多东西,已经远远超出了语言特性本身的层次,而是谈系统的架构。比如Java的enterprise application integration patterns。
p*22013-03-15 07:038 楼这个我还没有写完。你说的这些我下一部分都会有涉及。除了你说的类库部分。这部分我还不懂。【在 g*****g 的大作中提到】: 你对设计模式的理解有误区。设计模式是比language construct更高层次,即常见实现: 的抽象总结。不同语言的取舍不同,这就造成了一种语言的一个复杂实现,另一种语言: 可能直接做进了语言的特性。比如Singleton只于Java和Scala,前者是复杂实现,后者: 只需要一个关键字。: 在这个层面上,你说DP是为了弥补语言特性没有错。但你没有意识到两个东西。: 一是当一个实现可以抽象总结之后,就可以用类库来实现,在类库之上可以提供更高的: 灵活性和更强的功能,在使用上并不会比没有在语言特性上实现的更繁琐。举个例子就: 是@Singleton是ejb的spec,在java里你同样可以一个annotation把一个类做成: Singleton,包括spring/Guice在内的DI类库都提供了支持,而DI的功能已经远远超出: 了Singleton的范畴。
p*22013-03-15 07:039 楼Design Pattern 3: Three layers of design patternhttp://blog.sina.com.cn/s/blog_b9285de20101k0ql.html
p*22013-03-15 07:0310 楼又重新看了一遍你的回复。你说的这些都挺好的,我很赞同。跟我的理解不矛盾。【在 g*****g 的大作中提到】: 你对设计模式的理解有误区。设计模式是比language construct更高层次,即常见实现: 的抽象总结。不同语言的取舍不同,这就造成了一种语言的一个复杂实现,另一种语言: 可能直接做进了语言的特性。比如Singleton只于Java和Scala,前者是复杂实现,后者: 只需要一个关键字。: 在这个层面上,你说DP是为了弥补语言特性没有错。但你没有意识到两个东西。: 一是当一个实现可以抽象总结之后,就可以用类库来实现,在类库之上可以提供更高的: 灵活性和更强的功能,在使用上并不会比没有在语言特性上实现的更繁琐。举个例子就: 是@Singleton是ejb的spec,在java里你同样可以一个annotation把一个类做成: Singleton,包括spring/Guice在内的DI类库都提供了支持,而DI的功能已经远远超出: 了Singleton的范畴。