p*****2 发帖数: 21240 | |
p*****2 发帖数: 21240 | 2 先打个草稿
首先,GoF设计模式要解决的问题不少都是因为OO不承认全局变量和函数造成的。
其次,设计模式的三个准则:中意与组合而不是继承, 依赖于接口而不是实现,高内
聚低耦合
第三,设计模式分为creational, structural, behaviroal。
Strategy: OO不承认函数造成的
Decrator: 就是平时常常提到的wrapper, 也属于中意与组合而不是继承
Factory: 感觉是纯OO的东西。Factory method有两种,一种是effective Java里谈的
,一种是GoF里谈的,我觉得都属于design pattern的范畴,但是要注意区分。因为平
时所说的DP一般指GoF,但是我感觉前者可能更常用,所以这个比较容易confused。面
试比较容易考到,感觉应该跟面试官说清楚。
Observer: 太常用了,平时见到的什么event,notification都是这个pattern。
Chain of Responsibility: 一看就想到了exception。除此之外,貌似driver的stack
也是这个意思。
Singleton: 不用多说了,OO不承认全局变量造成的,面试最容易考到,CC150上的代码
问题太多。
Flyweight: 这东西我感觉还真没怎么见过应用除了线程池。
Adapter: 很常见。为了保持compatibility经常使用,也是wrapper。
Facade: 思路太直接了,应用也很常见,感觉不需要学习也会用。
Template: 感觉就是多态性的一个应用,不需要学习也会用。
Builder: Leetcode说工作经常用,不过我没见过,当然我不是搞OO的。
Iterator: 现在各个语言都实现了,再叫pattern恐怕不合适了。
Composite: 看看Google, Linkedin的vector of vector的面试题吧。
Command: 实在是太直接常见了,不需要学习也会用。
Mediator: 现在流行MVC,不知道mediator的应用还广不广。
State: 非常反FP的东西,不过IP里面还是很常用的。
Proxy: 太常用了,不学也会用。
Abstract Factory: 肯定也是纯OO的东西,我工作没有见过,当然我不是搞OO的。属于
依赖于接口而不是实现。
Prototype: 没怎么见过,能感觉到它是有用的。
Bridge: 体现了中意与组合而不是继承, 某大牛面一个牛逼startup碰到过。
Interpreter: 一看就很难。被王圻批判过。
Memento: 感觉有用处,在考虑应用到自己工作项目中去。
Visitor: 由于OO不承认函数造成的。也被王圻批判过。不过板上有人面试碰到过,工
作中处理html的dom也用到过。 |
h*****3 发帖数: 1391 | 3 哎,我当年考试的时候23个至少出了15个让你解释。 |
p*****2 发帖数: 21240 | 4
什么考试呀?
【在 h*****3 的大作中提到】 : 哎,我当年考试的时候23个至少出了15个让你解释。
|
d*******3 发帖数: 58 | |
p*****2 发帖数: 21240 | 6
其实也不难。看一下也花不了多长时间。很多平时就在用了,只是没意识而已。
【在 d*******3 的大作中提到】 : 牛x,我表示完全不懂这些DP~
|
i**********e 发帖数: 1145 | 7 adapter 工作中挺常见的,一直看到过,但没留意这也是 GOF 里的其中一个 DP 。
之前就一直认为像个 helper function 把一个data massage 到另一种data格式。
【在 p*****2 的大作中提到】 : : 其实也不难。看一下也花不了多长时间。很多平时就在用了,只是没意识而已。
|
h*****3 发帖数: 1391 | 8 面试中的笔试。
【在 p*****2 的大作中提到】 : : 其实也不难。看一下也花不了多长时间。很多平时就在用了,只是没意识而已。
|
p*****2 发帖数: 21240 | 9
是呀。所以王垠说他画了画,他的一个pattern对应这GoF的几个pattern。比如平时说
的wrapper,至少包含了decorator,adapter, facade,command几个。
【在 i**********e 的大作中提到】 : adapter 工作中挺常见的,一直看到过,但没留意这也是 GOF 里的其中一个 DP 。 : 之前就一直认为像个 helper function 把一个data massage 到另一种data格式。
|
p*****2 发帖数: 21240 | 10
什么样的公司呀?大公司,小公司呢?这么看中DP呀?
【在 h*****3 的大作中提到】 : 面试中的笔试。
|
|
|
r**h 发帖数: 1288 | 11 我前段时间看了下那个heading first DP中前面常用的几个
觉得最大问题是,懂得了这个pattern的意义和用法,但是遇到具体的设计题却想不到
去使用这个pattern,或者想到了这个pattern,却不知道如何代入 |
p*****2 发帖数: 21240 | 12
所以需要大家share经验和总结呀。呵呵。我觉得看到很多pattern发现工作中就用到过
,或者碰到过类似的问题,但是自己的方法可能没有DP上的好,当然也有可能更好。这
样更容易理解。
【在 r**h 的大作中提到】 : 我前段时间看了下那个heading first DP中前面常用的几个 : 觉得最大问题是,懂得了这个pattern的意义和用法,但是遇到具体的设计题却想不到 : 去使用这个pattern,或者想到了这个pattern,却不知道如何代入
|
p*****2 发帖数: 21240 | |
w********p 发帖数: 948 | 14 强,刚刚听说要学DP。这会儿总结都出来了。
Design Pattern 估计我要多啃会儿。本来打算啃 head first. 据说比GOF 要容易,弄
通了面试没问题。
这个我打印下来,压桌面上。
【在 p*****2 的大作中提到】 : 先打个草稿 : 首先,GoF设计模式要解决的问题不少都是因为OO不承认全局变量和函数造成的。 : 其次,设计模式的三个准则:中意与组合而不是继承, 依赖于接口而不是实现,高内 : 聚低耦合 : 第三,设计模式分为creational, structural, behaviroal。 : Strategy: OO不承认函数造成的 : Decrator: 就是平时常常提到的wrapper, 也属于中意与组合而不是继承 : Factory: 感觉是纯OO的东西。Factory method有两种,一种是effective Java里谈的 : ,一种是GoF里谈的,我觉得都属于design pattern的范畴,但是要注意区分。因为平 : 时所说的DP一般指GoF,但是我感觉前者可能更常用,所以这个比较容易confused。面
|
B******5 发帖数: 4676 | |
T*********s 发帖数: 17839 | |
G****A 发帖数: 4160 | 17 多谢总结。 adapter, observer, factory这几个还是很常用的
【在 p*****2 的大作中提到】 : 先打个草稿 : 首先,GoF设计模式要解决的问题不少都是因为OO不承认全局变量和函数造成的。 : 其次,设计模式的三个准则:中意与组合而不是继承, 依赖于接口而不是实现,高内 : 聚低耦合 : 第三,设计模式分为creational, structural, behaviroal。 : Strategy: OO不承认函数造成的 : Decrator: 就是平时常常提到的wrapper, 也属于中意与组合而不是继承 : Factory: 感觉是纯OO的东西。Factory method有两种,一种是effective Java里谈的 : ,一种是GoF里谈的,我觉得都属于design pattern的范畴,但是要注意区分。因为平 : 时所说的DP一般指GoF,但是我感觉前者可能更常用,所以这个比较容易confused。面
|
h*****3 发帖数: 1391 | 18 小公司。一般而言,如果不是新毕业生的话,一些基本的dp都或多或少会考点。看看是
不是和简历上说的符合。不能说编程了几年,连基本的dp和语法都不会。
【在 p*****2 的大作中提到】 : 更新了一下,全文在这里 : http://blog.sina.com.cn/s/blog_b9285de20101k36b.html
|
p*****2 发帖数: 21240 | 19
不过如果是做C编程的呢?感觉不会也不算不正常吧?
【在 h*****3 的大作中提到】 : 小公司。一般而言,如果不是新毕业生的话,一些基本的dp都或多或少会考点。看看是 : 不是和简历上说的符合。不能说编程了几年,连基本的dp和语法都不会。
|
c***f 发帖数: 40 | 20 google linkedin vector of vector 那到面试题在哪能找到呢 |
p*****2 发帖数: 21240 | 21
好像板上讨论过无数次了。
就是vector of vector,实现iterator DP
【在 c***f 的大作中提到】 : google linkedin vector of vector 那到面试题在哪能找到呢
|
b*******n 发帖数: 847 | |