由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - Design Pattern 实际用的很少吧
相关主题
推荐一本书:大话设计模式工作中,Design Pattern使用的多吗?
求head_first_design_patterns,有包子谢再来一个design的题
GoF看完了以后感觉面试中OO设计就是扯淡关于design pattern
Design Pattern 2: Procedural, OO and Functional programming请问准备面试的OO design题目要了解哪些design pattern?
给大家推荐点学习资料new grad design pattern
design pattern大家怎么准备?Amazon OO Design 经典题的思考
【设计模式】要达到啥水平?design题需要把head first design pattern那本书看完么?
UML和设计模式关于 C++ design pattern 的资料
相关话题的讨论汇总
话题: pattern话题: design话题: singleton话题: 很少话题: iterator
进入JobHunting版参与讨论
1 (共1页)
r******r
发帖数: 700
1
同一个问题,classes (interfaces) 设计的方案有很多种。很多时候,感觉最直观,
最方便的设计方案,反而用不到那些经典的 pattern. 而那些介绍 design pattern 的
书,对每一种 pattern 的使用范围好像有很多严格的限制。如果没有多年的设计经验
和对每一种 pattern 的深刻理解,只是为了应用某个 pattern 而机械的使用,好像会
适得其反.
比如说,singleton pattern, 概念好像很明确,但是用途却很有限。在实际编程中,
很多时候,某个类可能就只要一个 instance,但是不管自己,还是别人的 code,很少
用到或看到使用 Singleton。这也许解释了为什么在面试中,问到设计模式的问题很少
,因为面试官可能自己都很少使用那些 pattern.
如果不能确定哪个 pattern 是否合适,就干脆不要用了;否则,免得弄出笑话。有经
验的说说,是不是这样呢? 学生或刚毕业的,估计都有这种感觉吧?
x***y
发帖数: 633
2
I remember in an interview last year I was asked when we should use singlton
design pattern,and that interviewer expected a better answer than "the
class can only have one instance".....

【在 r******r 的大作中提到】
: 同一个问题,classes (interfaces) 设计的方案有很多种。很多时候,感觉最直观,
: 最方便的设计方案,反而用不到那些经典的 pattern. 而那些介绍 design pattern 的
: 书,对每一种 pattern 的使用范围好像有很多严格的限制。如果没有多年的设计经验
: 和对每一种 pattern 的深刻理解,只是为了应用某个 pattern 而机械的使用,好像会
: 适得其反.
: 比如说,singleton pattern, 概念好像很明确,但是用途却很有限。在实际编程中,
: 很多时候,某个类可能就只要一个 instance,但是不管自己,还是别人的 code,很少
: 用到或看到使用 Singleton。这也许解释了为什么在面试中,问到设计模式的问题很少
: ,因为面试官可能自己都很少使用那些 pattern.
: 如果不能确定哪个 pattern 是否合适,就干脆不要用了;否则,免得弄出笑话。有经

x*****p
发帖数: 1707
3
在大型项目开发中,design patterns还是很重要的,对代码的可维护性,可重用性,
安全性,延展性等都有很多好处。编程多了,许多design patterns的想法会自然出现
,但可能你用了一些design pattern,却不知道名字。所以design pattern的另一个好
处,是方便交流,一说大家都明白是什么,否则你一堆代码是啥思想,解释不太清。
x*****p
发帖数: 1707
4
Actually, singleton patterns are used in many places. For example, in
Cairngorm MVC, a singleton for ModelLocator class is a must. If you are
enrolled in some big project, you will find more examples for singleton
objects.

singlton

【在 x***y 的大作中提到】
: I remember in an interview last year I was asked when we should use singlton
: design pattern,and that interviewer expected a better answer than "the
: class can only have one instance".....

s******o
发帖数: 2233
5
singleton, iterator, MVC, factory, strategy这些在工作中都还是很常见的吧

【在 r******r 的大作中提到】
: 同一个问题,classes (interfaces) 设计的方案有很多种。很多时候,感觉最直观,
: 最方便的设计方案,反而用不到那些经典的 pattern. 而那些介绍 design pattern 的
: 书,对每一种 pattern 的使用范围好像有很多严格的限制。如果没有多年的设计经验
: 和对每一种 pattern 的深刻理解,只是为了应用某个 pattern 而机械的使用,好像会
: 适得其反.
: 比如说,singleton pattern, 概念好像很明确,但是用途却很有限。在实际编程中,
: 很多时候,某个类可能就只要一个 instance,但是不管自己,还是别人的 code,很少
: 用到或看到使用 Singleton。这也许解释了为什么在面试中,问到设计模式的问题很少
: ,因为面试官可能自己都很少使用那些 pattern.
: 如果不能确定哪个 pattern 是否合适,就干脆不要用了;否则,免得弄出笑话。有经

g*********s
发帖数: 1782
6
singleton and iterator is everywhere.

【在 r******r 的大作中提到】
: 同一个问题,classes (interfaces) 设计的方案有很多种。很多时候,感觉最直观,
: 最方便的设计方案,反而用不到那些经典的 pattern. 而那些介绍 design pattern 的
: 书,对每一种 pattern 的使用范围好像有很多严格的限制。如果没有多年的设计经验
: 和对每一种 pattern 的深刻理解,只是为了应用某个 pattern 而机械的使用,好像会
: 适得其反.
: 比如说,singleton pattern, 概念好像很明确,但是用途却很有限。在实际编程中,
: 很多时候,某个类可能就只要一个 instance,但是不管自己,还是别人的 code,很少
: 用到或看到使用 Singleton。这也许解释了为什么在面试中,问到设计模式的问题很少
: ,因为面试官可能自己都很少使用那些 pattern.
: 如果不能确定哪个 pattern 是否合适,就干脆不要用了;否则,免得弄出笑话。有经

r******r
发帖数: 700
7
对,很多命名听上去好像是某个工具的类,有可能是 singleton, 比如,
xxxLocator
xxxCreator
xxxParser
xxxGenerator
xxxTagger
xxxProduer, etc.
但是,好像在写这样的类时,很多时候,作者都不严格按照 Singleton 的要求来些,
还是当作一个普通的类来处理。 其 assumption 就是,这个类的用途很明确,单一,
自己或别人都不会试图去建立它的多个实例,因为应用当中,不存在那种可能。当然,
如果写成 singleton 的样子,更直观一些,语义更明确一些。
或许是我见得太少,坐井观天了吧

【在 x*****p 的大作中提到】
: Actually, singleton patterns are used in many places. For example, in
: Cairngorm MVC, a singleton for ModelLocator class is a must. If you are
: enrolled in some big project, you will find more examples for singleton
: objects.
:
: singlton

r******r
发帖数: 700
8
iterator 是的,无论 c++ 还是 java, 它都是 container class 的基础。

【在 s******o 的大作中提到】
: singleton, iterator, MVC, factory, strategy这些在工作中都还是很常见的吧
j*****u
发帖数: 1133
9
恰恰相反,design pattern非常有用,在实际工作用你可能几年都没有机会去写quicks
ort,dp。。。但是design pattern天天都会见到
singleton其实严格讲不太像design pattern,更像一个programming trick
在application level,通常high level design做的好不好要比局部最优更重要,尤其
在需求变化很快的领域。
pattern is everywhere,不单单局限在Gof的23种。不仅优化了design,也会帮助comm
unication。比如简单的说一个词observer就非常明确了,如果大家都不知道design pa
ttern那要费多少力气才能解释清楚。

【在 r******r 的大作中提到】
: 同一个问题,classes (interfaces) 设计的方案有很多种。很多时候,感觉最直观,
: 最方便的设计方案,反而用不到那些经典的 pattern. 而那些介绍 design pattern 的
: 书,对每一种 pattern 的使用范围好像有很多严格的限制。如果没有多年的设计经验
: 和对每一种 pattern 的深刻理解,只是为了应用某个 pattern 而机械的使用,好像会
: 适得其反.
: 比如说,singleton pattern, 概念好像很明确,但是用途却很有限。在实际编程中,
: 很多时候,某个类可能就只要一个 instance,但是不管自己,还是别人的 code,很少
: 用到或看到使用 Singleton。这也许解释了为什么在面试中,问到设计模式的问题很少
: ,因为面试官可能自己都很少使用那些 pattern.
: 如果不能确定哪个 pattern 是否合适,就干脆不要用了;否则,免得弄出笑话。有经

y***m
发帖数: 7027
10
这些东东是为项目大了,人多了,方便统一思路用,小项目人员少就按怎么方便怎么弄

【在 r******r 的大作中提到】
: 同一个问题,classes (interfaces) 设计的方案有很多种。很多时候,感觉最直观,
: 最方便的设计方案,反而用不到那些经典的 pattern. 而那些介绍 design pattern 的
: 书,对每一种 pattern 的使用范围好像有很多严格的限制。如果没有多年的设计经验
: 和对每一种 pattern 的深刻理解,只是为了应用某个 pattern 而机械的使用,好像会
: 适得其反.
: 比如说,singleton pattern, 概念好像很明确,但是用途却很有限。在实际编程中,
: 很多时候,某个类可能就只要一个 instance,但是不管自己,还是别人的 code,很少
: 用到或看到使用 Singleton。这也许解释了为什么在面试中,问到设计模式的问题很少
: ,因为面试官可能自己都很少使用那些 pattern.
: 如果不能确定哪个 pattern 是否合适,就干脆不要用了;否则,免得弄出笑话。有经

相关主题
design pattern大家怎么准备?工作中,Design Pattern使用的多吗?
【设计模式】要达到啥水平?再来一个design的题
UML和设计模式关于design pattern
进入JobHunting版参与讨论
y***m
发帖数: 7027
11
nod,扣那一分一毫的算法性能,大西瓜却丢了。。

quicks
comm
pa

【在 j*****u 的大作中提到】
: 恰恰相反,design pattern非常有用,在实际工作用你可能几年都没有机会去写quicks
: ort,dp。。。但是design pattern天天都会见到
: singleton其实严格讲不太像design pattern,更像一个programming trick
: 在application level,通常high level design做的好不好要比局部最优更重要,尤其
: 在需求变化很快的领域。
: pattern is everywhere,不单单局限在Gof的23种。不仅优化了design,也会帮助comm
: unication。比如简单的说一个词observer就非常明确了,如果大家都不知道design pa
: ttern那要费多少力气才能解释清楚。

r******r
发帖数: 700
12
大型软件系统中,都严格使用 UML 这样的工具来作需求分析和设计,生成各种设计图
表,然后据图进行 code 的吗?
听说有些公司根本就不用这些工具,程序员就讨论讨论,直接写 code. 觉得没有严格
的分析和设计阶段,大程序很难写啊。需要哪些类,不需要哪些类,什么类需要什么性
质的成员变量和方法,以及各个类之间的通讯。没有设计图,要把这些复杂的东西都在
脑袋当中在开始阶段就想清楚,直接写代码,都是大牛人吧。
感觉类的设计与算法比较,一点都不轻松啊。各个领域的经典算法,基本上都已经有了
,都被大师级的人物,研究透了。但是每个应用的设计,却是千变万化的。

quicks
comm
pa

【在 j*****u 的大作中提到】
: 恰恰相反,design pattern非常有用,在实际工作用你可能几年都没有机会去写quicks
: ort,dp。。。但是design pattern天天都会见到
: singleton其实严格讲不太像design pattern,更像一个programming trick
: 在application level,通常high level design做的好不好要比局部最优更重要,尤其
: 在需求变化很快的领域。
: pattern is everywhere,不单单局限在Gof的23种。不仅优化了design,也会帮助comm
: unication。比如简单的说一个词observer就非常明确了,如果大家都不知道design pa
: ttern那要费多少力气才能解释清楚。

j*****u
发帖数: 1133
13
实际工作中,没有那么严格。很多情况下class design都在developer的脑子里,而且最
初的design一般都不是很优的,要不停的refactor来改善结构设计。这也是make sense
的,design pattern都是有cost的,over design is worse than no design。用了des
ign pattern常常会产生更多的代码和类,有时code会难以理解,如果这些地方没有变化
点的话只是有害无益。
你说的很对,算法通常相对固定,容易找到reference。design充满着变化,包含着各个
方面的考虑,还会经常面对tradeoff。这也就是为什么interview experienced candid
ate会侧重design的缘故。很多时候都是经验的积累,这些经验不只是书中学来的,更多
的是经历的project中各种失败的教训和总结出来的东西。

【在 r******r 的大作中提到】
: 大型软件系统中,都严格使用 UML 这样的工具来作需求分析和设计,生成各种设计图
: 表,然后据图进行 code 的吗?
: 听说有些公司根本就不用这些工具,程序员就讨论讨论,直接写 code. 觉得没有严格
: 的分析和设计阶段,大程序很难写啊。需要哪些类,不需要哪些类,什么类需要什么性
: 质的成员变量和方法,以及各个类之间的通讯。没有设计图,要把这些复杂的东西都在
: 脑袋当中在开始阶段就想清楚,直接写代码,都是大牛人吧。
: 感觉类的设计与算法比较,一点都不轻松啊。各个领域的经典算法,基本上都已经有了
: ,都被大师级的人物,研究透了。但是每个应用的设计,却是千变万化的。
:
: quicks

s******s
发帖数: 3694
14
一个大的, 可维护的, 可扩展的,可复用的 ,多任务的, 并发式开发的, 没有不用到的, 反之你可以认为这个开发的东西很撮。
估计起来, 大一点的系统差不多有 15 ~ 20 种设计模式可以被用到

【在 r******r 的大作中提到】
: 同一个问题,classes (interfaces) 设计的方案有很多种。很多时候,感觉最直观,
: 最方便的设计方案,反而用不到那些经典的 pattern. 而那些介绍 design pattern 的
: 书,对每一种 pattern 的使用范围好像有很多严格的限制。如果没有多年的设计经验
: 和对每一种 pattern 的深刻理解,只是为了应用某个 pattern 而机械的使用,好像会
: 适得其反.
: 比如说,singleton pattern, 概念好像很明确,但是用途却很有限。在实际编程中,
: 很多时候,某个类可能就只要一个 instance,但是不管自己,还是别人的 code,很少
: 用到或看到使用 Singleton。这也许解释了为什么在面试中,问到设计模式的问题很少
: ,因为面试官可能自己都很少使用那些 pattern.
: 如果不能确定哪个 pattern 是否合适,就干脆不要用了;否则,免得弄出笑话。有经

s******s
发帖数: 3694
15
Senior 和 非 Senior 的差别就在这里, 这个又回到另外一个老话题, 软件不光是扣
定, 行业的产品的背景和经验很重要。
一个成熟的开发公司, 需求设计差不多会花掉 30% 的时间, Software Design 差不
多花掉 30% 的时间, 扣定和集成测试大概也就是 30% 的时间, 10% 用在 review。
任何企图冒充老鸟或者牛逼的英雄人物, 最后往往被扔到开发的垃圾桶

且最
sense
des
变化
各个
candid
更多

【在 j*****u 的大作中提到】
: 实际工作中,没有那么严格。很多情况下class design都在developer的脑子里,而且最
: 初的design一般都不是很优的,要不停的refactor来改善结构设计。这也是make sense
: 的,design pattern都是有cost的,over design is worse than no design。用了des
: ign pattern常常会产生更多的代码和类,有时code会难以理解,如果这些地方没有变化
: 点的话只是有害无益。
: 你说的很对,算法通常相对固定,容易找到reference。design充满着变化,包含着各个
: 方面的考虑,还会经常面对tradeoff。这也就是为什么interview experienced candid
: ate会侧重design的缘故。很多时候都是经验的积累,这些经验不只是书中学来的,更多
: 的是经历的project中各种失败的教训和总结出来的东西。

i**9
发帖数: 351
16
谁能聊一聊amazon 那个经典的furniture(table ,chair ,wood_chair, steel_chair,
wood_steel_chair,wood_table,steel_table)该用什么design pattern?怎么 design更
有效率?
1 (共1页)
进入JobHunting版参与讨论
相关主题
关于 C++ design pattern 的资料给大家推荐点学习资料
面试常考哪些java的design patterndesign pattern大家怎么准备?
[合集] 土八路.美国找工作【设计模式】要达到啥水平?
两轮高盛电面 + onsite请教 + bloomberg onsite 面经UML和设计模式
推荐一本书:大话设计模式工作中,Design Pattern使用的多吗?
求head_first_design_patterns,有包子谢再来一个design的题
GoF看完了以后感觉面试中OO设计就是扯淡关于design pattern
Design Pattern 2: Procedural, OO and Functional programming请问准备面试的OO design题目要了解哪些design pattern?
相关话题的讨论汇总
话题: pattern话题: design话题: singleton话题: 很少话题: iterator