c******o 发帖数: 1277 | 1 那些open source项目的committer, 本身就是design pattern的创造者。
他们是第一批用design pattern的。。。
你要是觉得牛人不用design pattern就错了,他们才是开始用的人,然后觉得好,推广
开。 |
|
Y**G 发帖数: 1089 | 2 Many pattern is for static typed language, for dynamic typed language, a lot
pattern is not needed.
I am not saying all patterns are not needed. |
|
c****3 发帖数: 10787 | 3 design pattern啥时候才有的。
很多人写电脑程序,就是为了解决实际问题,设计和思路都是从解决问题的角度出发的
。虽然可能设计和某种design pattern重合,但是人家不需要学习design pattern。
就像古代不少会打仗的人根本不认字,从来不看兵书,虽然战法和某种兵书重合,并不
等于他们学过兵书。 |
|
n****1 发帖数: 1136 | 4 非常同意这个
这些标准的design pattern,说穿了就是广义上的boxing/unboxing罢了. design
pattern的却能方便沟通, 但如果你整天都在design pattern,就像一researcher的整天
都在presentation,或者开party, 这样的research能有多少干货呢?
你读别人的code觉得恶心,我读别人的paper也常觉得烂,一个道理 可自己写出来的通常
更烂! 不信你过段时间再读读自己的code.
如果你连自己的code都维护不了,凭啥指望人家维护你的code. |
|
z****e 发帖数: 54598 | 5 gof那23种最早是smalltalk,然后是c++,最后才有java版本
只不过前两个都废掉了,所以只留下最后一个,还会有人问
如果你足够老,应该能看到那些c++程序员经常为了用不用这些pattern吵翻天
java因为后来都j2ee化了,加上applet衰亡,所以真正23种里面用上的不多
也就是factory和singleton这种用得多点,用了spring之后
连这些都不用了,现在只在android什么上还会看到
不过rxjava出来之后,让以前很少用的一个observer pattern重生
以前没用过observer pattern,后来我也只在javafx里面的binding感觉到
但是真正用起来还是要reactive |
|
z*******3 发帖数: 13709 | 6 builder pattern自从set/get大面积使用之后
就剩下immutable比较合适了,因为set/get可以直接改掉variable
但是immutable attr.不能这么改,而如果这个时候attri.又比较多的话
你用constructor就很恶心了
从这一点出发说,scala这种oop和fp混杂的语言
反而是用builder pattern比较多的语言
因为fp强调immutable,把build方法搞成1st class func
就可以很自然滴使用出builder pattern |
|
|
s******y 发帖数: 613 | 8
谢谢 2楼和3楼
扫了一眼 R Reed 也是其中的作者
short summary:They found that the DSX alleles alone control the mimic or
non-mimic pattern of the Papilio buttterfly. Which is contrast to the
previous hypothesis that there will be a cluster of linked loci(super gene)
to control the wing pattern.
不知道我读懂没? 实际上他们是找到了个 不同pattern间的调控基因
还在读 一楼贴的文章
根本就停不下来! |
|
a*****g 发帖数: 19398 | 9 围棋数学--Pattern 和 禁入点
今天的围棋课,有个美国出生的华裔学生下完棋之后就在棋盘上摆了这么个形状。
(后续讲解内容在图片下面)
我一看就乐了,心想——机会来了!
我随手操起另外一个棋盘就盖了上去,然后提出了给全班的第一个问题
——请问,棋盘上有多少个棋子?
那个美国学生就一心想掀开盖子,然后一个一个数棋子;我就是偏偏不打开;
(你现在要是想翻上去看,那就和这个美国学生差不多了哦)
另外一个是从中国来了半年的学生,提出的要求是能不能拿张纸来辅助计算。
我拒绝了,要他们在脑子里面思考。
后来这个学生又提要求,说能不能用一样的棋盘棋盘去盖住。
这样可以看空的棋盘,但不能看棋子,这次我同意了。
第一次她算出50多。我说不对。
我其实也没仔细想,凭感觉回答的。(猜猜为什么?)
这个过程中,那个美国学生还在千方百计想掀开一个角落去数棋子。
后来我打开盖子,美国学生迫不及待地开始去一个一个数。
这个中国来的学生就说她的办法——
她把棋盘斜对角一分,成为左右两个相同的部分
然后大致一数,是 2 4 6 8 ,所以就是 2+4+6+8,最后加倍。
最后虽然她的结果数字没对,但她的思路很好,... 阅读全帖 |
|
l*********1 发帖数: 17 | 10 选了下学期pattern recognition,看书发现都是统计内容,如果我没有学过统计,修
pattern recognition是否会有很大困难?如果现在开始补,重点应该看那些内容?例
如Bayesian?求有类似经验或学过pattern recognition指点,谢谢!现在担心学起来
会撞墙。 |
|
w*******y 发帖数: 60932 | 11 Kohls
Apply 10% code NEW6865
$0.99 S/H
List of Clearance Men's Button Front Shirts from lowest to highest
Below are all $4 each after 10% coupon and before S/H
Apt. 9 Patterned Casual Button-Front Shirt
Axist Striped Casual Button-Front Shirt
Apt. 9 Patterned Casual Button-Front Shirt
Axist Striped Casual Button-Front Shirt
axcess Patterned Casual Button-Front Shirt (medium)
|
|
|
|
f******e 发帖数: 6488 | 14 【 以下文字转载自 Stock 讨论区 】
发信人: ljtyusa (ljtyusa), 信区: Stock
标 题: pattern or not pattern? 2B or Not 2B?
发信站: BBS 未名空间站 (Fri Sep 25 17:18:23 2009, 美东)
I forgot to say reading the broad market is ultimate weapon. no time to say more today. It should be integrated into your strategies. |
|
c***c 发帖数: 21374 | 15 【 以下文字转载自 CS 讨论区 】
发信人: cynic (cynic@mitbbs 1998->2010->?), 信区: CS
标 题: 歌曲旋律的pattern研究到什么程度了?
发信站: BBS 未名空间站 (Sun Dec 29 03:12:17 2013, 美东)
据我小范围试验,让完全不懂中文的老外听上若干首中文歌曲,其中若干首属于金曲,
若干首是纯粹拉来凑数的。只听旋律,不听歌词。让他们选哪些最好听,结果全部都选
的是那些金曲。
歌曲旋律一定有些什么pattern是能跨越文化跨越语言去打动人心的。作曲家可能知其
然不知其所以然地在利用这些东西。但是如果能做到知其所以然,那岂不是写出来的歌
首首都是金曲,大卖特卖? |
|
s********l 发帖数: 998 | 16 以前好像有人推荐过head first design pattern这本书
想问一下 为了对付面试
对于像额这种没学过design pattern的
里面哪几章 必须看?
谢谢 |
|
i**********b 发帖数: 77 | 17 anyone familiar with Decorator design pattern?
Java I/O is using this pattern. BufferedInputStream and DataInputStream
are all subclasses of FilterInputStream.
they are supposed to work fine when used in any order on an InputStream
This (1):
fis = new FileInputStream(file);
bis = new BufferedInputStream(fis);
dis = new DataInputStream(bis);
And this (2):
fis = new FileInputStream(file);
dis = new DataInputStream(bis);
bis = new Buffered |
|
Z*****Z 发帖数: 723 | 18 They both have the same interface for inputting dada. They both need to perf
orm decoration for the input stream. Since they are both subclasses of Filte
rInputStream, they can be chained together. Their neighbor is specified in t
he constructor. So each of them need to get data from the underlying (or nei
ghbor) input stream and do the specific decoration. Then wait the data to be
read by the next neighbor.
anyone familiar with Decorator design pattern?
Java I/O is using this pattern. Buffered |
|
j*****g 发帖数: 223 | 19 Write a function:
bool match(const char *string, const char *pattern),
where pattern can contain '.' (exact one arbitrary char match) and/or '*' (
zero of more arbitrary char match).
网上看了不少答案,要么是recursive, 慢的要死,要么绝大多数non-recursive的算
法是错的。我有一个DP(dynamic programing)的解答(not sure it's completely
correct or not),不知道各位大侠有什么高招? |
|
j*****g 发帖数: 223 | 20 // txt -> text
// p -> pattern (include . and *)
void pattern_match(const char *txt, const char *p)
{
int **d = NULL;
int len_txt = 0, len_p = 0;
int i, j, k;
if (!txt || !p) goto exit;
len_txt = strlen(txt);
len_p = strlen(p);
if (len_txt == 0 || len_p == 0) goto exit;
printf("text : %s\n", txt);
printf("pattern: %s\n", p);
d = new int*[len_p];
if (!d) goto exit;
memset(d, NULL, sizeof(int*) * len_p);
for (i = 0; i < len_p; i++)
{
... 阅读全帖 |
|
j*****g 发帖数: 223 | 21 Meaning of d[i, j] (I should've used bool instead of integer, but you get
the idea):
d[i, j]
= 0, if txt[0...j] doesn't match pattern p[0...i]
= 1, if txt[0...j] matches pattern p[0...i] |
|
d**e 发帖数: 6098 | 22 不递归,O(nm)时间,O(1)空间的
n = strlen(str)
m = strlen(pattern) if pattern has no *, else n |
|
j*****g 发帖数: 223 | 23 Still looking at @ihasleetcode suggested Dr.Dobbs algorithm which looks like
a suffix tree matching.
As for @done, does your algorithm pass on this test case?
string : abc
pattern: b*
It's a not match. But in your code, the inner loop will break out when
comparing 'a' vs 'b'. after breaking out, the outer loop will advance s
pointer, so next time, p1 will be pointing at 'b', and s1 will be pointing
at 'b'. After that, seems your algorithm will match them and return 1.
Can you double check?
BTW, ... 阅读全帖 |
|
j*****g 发帖数: 223 | 24 hm...
1. counter example: str=a, pattern=.
2. counter example: str=aac, pattern=*ac |
|
i**********e 发帖数: 1145 | 25 Great attempt.
I think you have a pretty good approach here using DP.
However, I think you still missed few test cases:
Try pattern "*o*" and string "hello", it should return true.
and pattern "a" and string "aa", it should return false. |
|
i**********e 发帖数: 1145 | 26 另外,这是我的重写的新代码,我觉得比我之前的版本要简洁些。
而且这版本也处理'.'为一个任意字母。
bool match(const char *str, const char *pattern) {
const char *p1 = pattern, *p2 = str;
// If the first character is a letter, need to match letter by letter.
while (*p1 != '*') {
if (!*p1 && !*p2) return true;
if (!*p1 || !*p2) return false;
if (*p1 == '.' || *p1 == *p2) {
p1++;
p2++;
} else {
return false;
}
}
while (true) {
// Now *p1 must be '*'
while (*p1 && *p1 == '*') {
p1++;
... 阅读全帖 |
|
i**********e 发帖数: 1145 | 27 The purpose of the code is to match the end of the string with the pattern:
For example,
pattern="h*llo"
string="hellohellc"
The code will ensure that if the last character is not a '*', then it will
match the last section letter by letter.
一些常见面试题的答案与总结 -
http://www.ihas1337code.com
s1 |
|
M******l 发帖数: 479 | 28 一直以为MVC是一种design pattern……面试的时候被问住了……也没怎么学过design
pattern, 唉~ |
|
|
j*****u 发帖数: 1133 | 30 实际工作中,没有那么严格。很多情况下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中各种失败的教训和总结出来的东西。 |
|
|
u****g 发帖数: 402 | 32 谁能写个简单的factory method pattern的应用吗.
看到很多地方说这个pattern,但具体怎么用五花八门。
thinking in c++ II 里面的应用跟wiki的差了很多。
简单的
class A{ func f;};
class B:public A {func f;};
就行。 |
|
v***a 发帖数: 365 | 33 这就是Decorate pattern
tshirt 包含 trouser, trouser 包含 sneaker,...
when you call tshirt.Show();
tshirt 先处理自己的 Write (真正有用的部分), 然后递归调用 trouser.Show()
这也就是关键:
这样 tshirt 就不需要知道 person 到底被多少个Finery decorate,
ANY Finery只需要只要做好自己的工作 和 调用 Base.show() 就可以了,
也就达到了 松耦合:大部分pattern追求的主要目标之一 |
|
h****e 发帖数: 928 | 34 看HeadFirst Design Patterns,写得非常好懂,比GOF好多了,
更适合面试准备。
面试前突击背下各个Patterns的名称和要点。 |
|
z*******3 发帖数: 13709 | 35 用得不少
很多人认为要尽一切可能用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 发帖数: 21240 | 36
所以你这个不是visitor pattern吧?只是tree的traverse吧?我看了一下,visitor
pattern不是那么好用的。 |
|
|
p*****2 发帖数: 21240 | 38
是呀。所以王垠说他画了画,他的一个pattern对应这GoF的几个pattern。比如平时说
的wrapper,至少包含了decorator,adapter, facade,command几个。 |
|
f*********m 发帖数: 726 | 39 前段时间有位大牛回答design pattern资源的时候提供了一个网址,上面简洁地介绍了
一些pattern并且还有code例子。我找不到了(或者原贴被删掉了),哪位能提供些信
息?
谢谢。 |
|
n*****5 发帖数: 984 | 40 Design Pattern 好像很多地方面试都要求,我自己只是胡乱的看了看wiki的介绍,只
能记住大概的意思。不知道大家面试的时候对Design Pattern的要求都是什么样的?要
掌握到什么程度才行?
谢谢各位。 |
|
f*****e 发帖数: 2992 | 41 DAO, DI, IOC都算pattern的。
pattern |
|
f*****e 发帖数: 2992 | 42 java ee pattern,我觉得很有用的。singleton也是Jee的pattern之一,session fact
ory bean之类的。 |
|
z****e 发帖数: 54598 | 43 你肯定用过,只不过你不知道叫那个名字而已
比如marker interface就是一个pattern
一般也可以写,写出来程序比较难看而已
不用ioc和用了ioc,阅读起来难度完全在两个层面
不用spring的core java代码,屎坑不比c,python那些少多少
pattern |
|
s********k 发帖数: 2352 | 44 对设计java class来说,这东西相当重要。 你自己设计的也算是一种pattern
pattern |
|
r****s 发帖数: 1025 | 45 这就是扯淡了,你工作过吗?各个组的business logic都不一样,怎么会有固定的
coding pattern用在不同的business?
我到过的公司,除了startup,稍微正规一点的,都没有见过全公司写code有固定
pattern这样的奇景。
startup那是因为实在找不到高手,不敢轻举妄动,只好在别人的code上改改算了。 |
|
x*******9 发帖数: 138 | 46 想了半天,还是没有好方法。。。
如果是在OJ上的话,pattern < 5, strlen < 500,这题我就敢枚举每个pattern长度来
暴力搞
如果数据规模更大的话,可能会更难 |
|
h********m 发帖数: 116 | 47 前几天面试被问到一个问题,中间需要删除文件里含有某个pattern的lines,但是如果
有另一个pattern就不用删除(比如说comment行)。请问这个怎么实现啊?
如果只删除pattern1,应该是 sed "/$PATTERN1/d" file
可是怎样限定这一行不是 “#”开头呢? |
|
h****9 发帖数: 42 | 48 The Computational Breast Imaging Group (CBIG) of the Radiology Department at
the University of Pennsylvania has open postdoctoral positions.
CBIG is the research group of the Breast Imaging Division with a mission to
act as a translational catalyst between computational imaging science and
breast cancer research. We are developing a research program investigating
the role of quantitative imaging as a biomarker for guiding personalized
breast cancer screening, prognosis, and treatment.
Work in ou... 阅读全帖 |
|
g*****n 发帖数: 1428 | 49 我们家两张卡,一张今天收到邮件了,另一张貌似还活着。
先说共同的(这些应该都与关卡无关!):
1. 都是店里买的老Serve
2. 每月都用非AmEx自家的CC online load一千
3. 每月都在Walmart用vgc/mgc load过至少一千
4. 都是用来bill pay,从来没有ATM取现或withdraw到银行
再说不同的,大家看看哪些算靠谱的patterns:
1. 关掉的开卡好几个月,活着的拿到正式卡只有一个多月
2. 关掉的经常local店里 load,活着的很少(每月<3次)
3. 关掉的一天店里可能load好几次,活着的一天最多一次
4. 关掉的在Walmart和RA load过,活着的只在Walmart load过
5. 关掉的load过vgc和mgc,活着的只load过vgc
6. 关掉的有少量正常消费 (AmEx offer),活着的从来只pay过bill
7. 关掉的online CC load从来没被要求验证,活着的第二次即被要求验证DL和CC
8. 关掉的卡主信用史长、信用分稍高,活着的信用史稍短、信用分稍低
俺觉得2和3最可能,1和4也许也是.... 阅读全帖 |
|
s*****n 发帖数: 5488 | 50 pattern和系统有区别嘛?
我看好你有成为大牛的潜质,哈哈。严肃的,不是装B或者岳不群那种。
patterns |
|