f****4 发帖数: 1359 | 1 不管MVC算不算Gof DP,Gof的确是提到MVC了。时间太长,忘记了。
Google了一下
http://www.dofactory.com/topic/1226/about-mvc-and-gof-patterns.
Hi,
Well, no MVC is not one of the GoF patterns. They are not at the same level.
MVC is what is called an architectural pattern while GoF patterns are
design patterns.
However, when implementing MVC you can take advantage of existing patterns.
Take the Head First Design Patterns book they build MVC using Strategy,
Composite, and Observer pattern. And I'm sure that there exists other
im... 阅读全帖 |
|
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:... 阅读全帖 |
|
p*****2 发帖数: 21240 | 3
看我的标题,就是讨论GoF的。如果把DP发散了讨论就不好搞了。不过你说的这个一般
叫做factory method, 而不叫做factory method pattern。感觉主要是跟GoF的做区分
。但是,这个我认为是一个pattern.不过有没有一个正式的名字呢?这个我还没搞明白
。比如你如果说factory,别人可能认为你指的是GoF的factory。所以跟别人交流的时
候,怎么表达这个pattern呢?总不能每次都解释一遍吧? |
|
f****4 发帖数: 1359 | 4 那会我也不知道你把Gof归类在OO DP的范畴里面啊。
Gof一直给我当作General DP的。就因为Gof 的DP定义最规范的原因。
这个的确是个问题,但貌似没有统一的标准。我尽量会回避这些容易引起歧义的名字,
以定义要解决的问题和给出解决方案替代。OOD的话就是给类图+口头解释。能懂的自然
懂了,不能懂的,你就是用对了名词还是不懂。 |
|
f****4 发帖数: 1359 | 5 好虫说得对,你把先后因果弄颠倒了。
你现在理解的DP,是基于OO实现的DP。但是DP的本意是通用的设计方案。这也是为啥定
义DP的地方用得是一段话,而不是一个类图。Gof是严格按照这个形式定义DP的,后来
的资料大多都是以实现来定义DP。
说回Singleton和全局变量的问题
在C里面没有OO,能实现Singleton么?
对全局变量A提供一个访问接口(可以是函数,可以是个domain socket,可以是个
pipeline。。。)
Coding stand加一条“访问A必须通过接口,违反者将被开除”
这个方案算Singleton么?
手头上没有Gof的书,不过对照你贴的
“Singleton is used when a single object needs to be instantiated and all
requested object access goes through this particular instance. This object
can maintain state if desired.”
你看看有地方违反了没。
类工厂和抽象类工厂,C压根就没有... 阅读全帖 |
|
f****4 发帖数: 1359 | 6 看了一下你的3层DP,同意你的观点:混起来之后完全没法讨论。
所以,你前面提到的“DP是为了满足OO缺陷的观点”是指特指OO DP?就算那样全局变
量+控制接口也是可以实现singleton;只是OO的特性提供了更好的实现方式。而不是因
为全局访问的要求破坏了OO特性才引入singleton。是先有了singleton的需求再有的OO
singleton的实现。
还有,你的blog关于mvc的描述。Gof的时候还没有3层控制的普遍需求。mvc是在web编
程才作为越来越普遍的一个需求。然后GoF的23种DP,现在已经消亡了很多。现在常用
的大约在15种左右。然后有一堆java DP。 |
|
p*****2 发帖数: 21240 | 7
其实GoF作为general DP也没什么大问题。主要是讨论的时候就乱了。所以想分清楚点。
看来名称的不统一的确是个问题呀。这也是GoF的一个重要价值了。 |
|
|
i**********e 发帖数: 1145 | 9 adapter 工作中挺常见的,一直看到过,但没留意这也是 GOF 里的其中一个 DP 。
之前就一直认为像个 helper function 把一个data massage 到另一种data格式。 |
|
p*****2 发帖数: 21240 | 10
是呀。所以王垠说他画了画,他的一个pattern对应这GoF的几个pattern。比如平时说
的wrapper,至少包含了decorator,adapter, facade,command几个。 |
|
w********p 发帖数: 948 | 11 强,刚刚听说要学DP。这会儿总结都出来了。
Design Pattern 估计我要多啃会儿。本来打算啃 head first. 据说比GOF 要容易,弄
通了面试没问题。
这个我打印下来,压桌面上。 |
|
p*****2 发帖数: 21240 | 12 OO现在最流行,以前没有意识,看了design pattern之后发现问题实在是太多了。OO是
反计算机的,GoF很多流行的pattern又是反OO的,所以非常的矛盾。无论你怎么设计都
会被别人挑错。为了面试只能迎合面试官的胃口。这也就解释了为什么我对OO design
的题一直心里发毛的原因。因为很难design里边没有毛病。OO本身就有缺陷,你怎么可
能design的完美呢?
比如你用Singleton, 很多人痛恨Singleton,你可能就完了。
你用design pattern, 面试官可能会说你over design。
你不用design pattern, 面试官可能会说你design 不 flexible
你用继承,面试官可能会说你反OO,影响了封装性。
你用接口,面试官可能会说你增加了不必要的冗余代码
总之OO内部的意见就不统一,OO的三大特性都有问题。
封装性造成了不承认全局变量,因此出了Singleton pattern, 然后Singleton又被批评
反OO
继承性本来可以防止冗余,但是增加了耦合,被批评影响了封装性,所以有了中意与组
合而不是继承,继承能不用就... 阅读全帖 |
|
x****d 发帖数: 1766 | 13 grandpa 2, i understand where you come from.
However, design is art, not science, right?
For example, One piece of GoF advice was “favor aggregation over
inheritance.” it means, don’t inherit. Instead, delegate from one object
to another. But it also says, use inheritance to
hide variation, not to achieve reuse of code.
So, you see it is very subtle, you can give a lot of blah blah blah to the
interviewer, as long as you can make yourself likable, you will get the
offer. Some questions' intentio... 阅读全帖 |
|
p*****2 发帖数: 21240 | 14
我的感觉如果OO的话,很难不用pattern。如果不是OO的话,那GoF就不一定有用了。 |
|
p*****2 发帖数: 21240 | 15
照你的意思不学Spring就不能理解Singleton?GoF哪年出的呀?Spring影子还没有吧。
不过我在研究一下Singleton,这样讨论一下挺好的。 |
|
p*****2 发帖数: 21240 | 16
看来我们没讨论同一个东西。你讨论的是J2EE的Singleton,我讨论的是GoF的
singleton。 |
|
g*****g 发帖数: 34805 | 17 j2ee的singleton同样是从GoF来的,只不过实现由框架提供了而已。 |
|
d**e 发帖数: 6098 | 18 我觉得面试中OO设计并不扯谈,扯的是面试中需要扯那些pattern名堂.
个人认为面试中注重的是"Object-Oriented" Design,不是"Pattern" Design.如果扯那
么多"Pattern"的确是Over-design了.如果我是面试官,给面试者一个模型说要求OO设计
,那么只要他能理顺分析出需求,找得出需要的entity或者说是object,里面需要什么数
据,需要什么函数,各个entity间的关系就可以了.如果能清楚表达出哪个pattern可以加
分,但用哪个pattern或者说不出用哪个pattern绝不会减分,因为这个本来就没有对或错.
正比如说database里面table的normalization,昨天正好跟版上一位同学讨论过,根本就
不需要清楚说得出第一第二第三范式的定义是什么(除非面试官问定义...),因为我也不
知道,但能够把table间的关系分得清就可以了.
所以,我觉得一定要用GoF里面的东西套进去面试的OOD是有点扯...
design |
|
|
i***h 发帖数: 12655 | 20 除非被要求或者你要BSO,
这个题还真不需要DP
OO思路就够了
当然搞完后你去对DP肯定能对上一点甚至很多,
不然GoF的书为什么能成经典呢
我想说的真正意思是OO/DP的核心思想是模块化的易于维护和扩展的设计
OO/DP是我们現在知道尽量做到这点的一个设计方法,
不了解这个,光为了OO而OO是没学懂啊 |
|
f****4 发帖数: 1359 | 21 好像GoF里面有提到过DP最初是从建筑设计借鉴过来的(?),大意是说,在解决同一
问题的各种设计的方案中,提炼出的具有通用性的,好的设计方案。以此在设计者之间
传递知识,经验。
我的理解就是,审核的人在问设计的人“XXX问题你是怎么解决的?”设计的说“我用
了YYY DP”。“哦,那没问题了”
所以,我对DP主要侧重在怎么实现;解决什么问题;好处是什么,缺点是什么。只有当
问题匹配的时候才会套用DP。
其次,OO和DP都是为了方便你的代码修改以适应新的需求。如果有个模块能用DP,但是
,这个模块只是被实现一次,以后永远不会有新的修改需求,你需要用DP么?答案是不
用,与其花时间在DP上,不如把注释写好点,帮助以后的维护。
当然,会有人来争论,说说不定以后有改变,用DP怎么这么好。但design的一个经常被
忽略的原则就是,永远不要把你认为的,好的,可能的需求考虑近来。需求是什么就是
什么。如果你认为有问题,应该提出来,在需求分析中解决问题;而不是在设计阶段,
由你的设计来cover你认为正确的,应该的需求。
说了这么多,主要是为了解释面试的时候(其实工作的时候也是同一个道理)怎么应对
... 阅读全帖 |
|
f****4 发帖数: 1359 | 22 "設計模式這個術語是由Erich Gamma等人在1990年代從建筑设计領域引入到計算機科學
的。它是對軟體設計中普遍存在(反覆出現)的各種問題,所提出的解決方案。"
http://zh.wikipedia.org/wiki/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%
Patterns originated as an architectural concept by Christopher Alexander (
1977/79). In 1987, Kent Beck and Ward Cunningham began experimenting with
the idea of applying patterns to programming and presented their results at
the OOPSLA conference that year.[3][4] In the following years, Beck,
Cunningham and others followed up on this work.
http://en.... 阅读全帖 |
|
p*****2 发帖数: 21240 | 23
感觉你对DP的理解并没有比我更清晰。有时间看看我的三层DP的文章吧。摘选一段如下
。如果不在一个范畴里讨论DP就没什么意思了。
http://blog.sina.com.cn/s/blog_b9285de20101k0ql.html
我发现在DP的讨论中,大家往往把general DP和GoF DP混在一起,比如王垠的那篇博客
就犯了这个错误。他是用FP的角度去把OO DP当作general DP来看待了,所以基本上是
驴唇不对马嘴。OO DP就是OO的,要讨论就需要在OO的范畴来讨论,出了OO的范畴就没
意思了。当然了,王垠博客的作用是让OO的崇拜者清醒一下,因为OO的崇拜者也经常拿
OO DP当作general DP来宣扬,这个也是一个错误。 |
|
p*****2 发帖数: 21240 | 24 然后GoF的23种DP,现在已经消亡了很多。现在常用
的大约在15种左右。然后有一堆java DP。
大牛能不能说说哪8种现在基本不用了?一堆Java DP那些很常用?多谢了。 |
|
p*****2 发帖数: 21240 | 25
你是搞C++的吗?一会儿问问goodbug怎么怎样能系统学一下Java非GoF的常见pattern。
你知不知道有关于C的design pattern,或者类似的东西。这个我想看看。 |
|
d**********x 发帖数: 4083 | 26 扯
GoF开篇就是用MVC做的例子
OO
如下
博客
上是
就没
常拿 |
|
f****4 发帖数: 1359 | 27 手头上没有Gof,谁有的给翻一下看看里面有MVC不。 |
|
p*****2 发帖数: 21240 | 28
大牛就是不一样。有理有据呀。关于architectural pattern,有没有什么类似GoF的著
作呢?这个归类是谁来完成的?不过MVC当作design pattern,我感觉也不是不可以的,
至少在某些应用下。 |
|
p*****2 发帖数: 21240 | 29
这个就不懂了。有点太specific了。得看看具体的才能知道。估计goodbug可以给很好
的回答吧。而且问题里的DP也不一定是GoF的DP吧。 |
|
s*******n 发帖数: 344 | 30 有几个人能 背着把gof 23种pattern 用java 随便写5,6个写出来
有这种能力比会scala, clojure, go, 什么的强多了吧。 |
|
z****e 发帖数: 54598 | 31 gof那23种最早是smalltalk,然后是c++,最后才有java版本
只不过前两个都废掉了,所以只留下最后一个,还会有人问
如果你足够老,应该能看到那些c++程序员经常为了用不用这些pattern吵翻天
java因为后来都j2ee化了,加上applet衰亡,所以真正23种里面用上的不多
也就是factory和singleton这种用得多点,用了spring之后
连这些都不用了,现在只在android什么上还会看到
不过rxjava出来之后,让以前很少用的一个observer pattern重生
以前没用过observer pattern,后来我也只在javafx里面的binding感觉到
但是真正用起来还是要reactive |
|
x****o 发帖数: 21566 | 32 来源:王垠的博客
有些人问我,你说学习操作系统的最好办法是学习程序设计。那我们是不是应该学习一
些“设计模式”(design patterns)。这是一个我很早就有定论,而且经过实践检验
的问题,所以想在这里做一个总结。
总的来说,如果光从字面上讲,程序里确实是有一些“模式”可以发掘的。因为你总是
可以借鉴以前的经验,用来构造新的程序。你可以把这种经验叫做“模式”。可是自从
《设计模式》(通常叫做 GoF,“Gang of Four”,“四人帮”)这本书在 1994 年发
表以来,“设计模式”这个词有了新的,扭曲的含义。它变成了一种教条,带来了公司
里程序的严重复杂化以及效率低下。
GoF 借鉴的是一个叫 Christopher Alexander 的建筑师的做法。Alexander 给一些建
筑学里的“设计模式”起了名字,试图让建筑师们有一些“共同语言”。可惜的是,
Alexander 后来自己都承认,他的实验失败了。因为这些固定的模式,并没能有效地传
递精髓的知识,没能让新手成长为出色的建筑师。
照搬模式东拼西凑,而不能抓住事物的本质,没有“灵感”,其实是设计不出好东西的
。这就像... 阅读全帖 |
|
z*******3 发帖数: 13709 | 33 gof那些pattern大部分其实都被java的各种框架什么轻松搞定了
比如singleton,一个@singleton就搞定了
或者用enum,现在很少还有人去自己实现singleton了
还有prototype也是写下配置文件就好了,或者直接调用clone()方法
factory的功能则多数spring所取代,flyweight等模式则在ejb容器中被实现
还有一些行为模式,比如iterator之类的都有现成的实现类,aop对应visitor什么
也都是用就行了,对于一般java开发人员来说,不需要自己去写这些模式
只需要会用就行了,如果经常自己去实现gof的那些模式
反倒是要看看是为什么了,为什么这个人在重复造轮子
而后在gof的基础之上,sun又搞出了一个j2ee core pattern
这个才是真正常见的对于java开发人员来说的design pattern
而就是这个core pattern,现在看也都有些陈旧了 |
|
G***l 发帖数: 355 | 34 真不明白你们有什么好疑惑的。design pattern一开始流行是因为GOF那本书,那本书
叫什么?“Design Patterns: Elements of Reusable Object-Oriented Software”。
人家书名都说了,是OO design pattern。Java是典型的OO语言,所以当然Java用的多
。像C#,C++这些里面同样可以用很多。你要是写C语言,很多pattern就没法用了。
如果说广义的design pattern,那就不只是gof,包括所有的为了解决某些问题而总结出
的编程的模版。比如J2EE有pattern,martin fowler有本书叫Patterns of Enterprise
Application Architecture等等。
正是因为OO不完美,没法达到复用,解耦或者其他一些的目标,所以才有了那些
pattern。design pattern不是目的,只是达到目的的手段。就算在OO里面,它也不一
定是解决问题的唯一或者最好的方法。OO之外,就更别说了。不同的场合里,有的
pattern不在需要,有的不适用,有的patt... 阅读全帖 |
|
V******t 发帖数: 35 | 35 我选择了ARIMA(20,0,5), no seasonality, no differecing. 为什么我得到下面的
错误信息。请大侠指教。
Problem in arima.diag(fit, acf.resid = diag.acf.resid, gof.lag = as.integer(
diag.gof.lag) ..: gof.lag must be bigger than 27
Use traceback() to see the call stack |
|
w*******9 发帖数: 1433 | 36 Not sure how to answer your question and I also look forward to some BigBull
's input.
It's well-known that a "large" sample size enables one to detect nuisance
departure from the null, but I guess 5000 is not detrimentally large (I am
not sure though). Maybe you can try the GOF test on a subsample to check
that?
Hosmer-Lemeshow test can be very sensitive to how you group the observations
(i.e. how many groups you use). Did you try different number of groups?
You may also consider other model as... 阅读全帖 |
|
z*******3 发帖数: 13709 | 37 不是java注重pattern
是j2ee注重pattern
问你pattern的人,潜意识里期待你能说出j2ee core pattern
或者更高级一点的
比如marker interface,这也是一个pattern哦
实话说,gof那些模式不少是写给写ui的人看的
也就是如果你跟swing这些东西打交道的话
gof那21个基础模式会很亲切
尤其是什么鸟observer之类的 |
|
b*****o 发帖数: 715 | 38 CLRS和GoF是两本书。说四人帮,大家一般都会默认是GoF。
CLRS啃完了,就啃真正的四人帮吧。 |
|
W*******e 发帖数: 1268 | 39 把依赖从代码中移除只是一个开始,在这个基础上建立起来的各种框架系统和软件设计
思路才是Java强大的生力军,而且23种GoF patterns几乎都能自然的在Java编程中体现
,包括很多non-GoF patterns。这是其他语言无法比较的。相比之下微软太后知后觉了。 |
|
g*****g 发帖数: 34805 | 40 design pattern != GOF DP. Let's make this clear.
GOF DP are based on C++, what do you expect?
lot |
|
l****y 发帖数: 486 | 41 Assume your knock-in here refers to mutating a site at the endogenous locus
(thus over expression-type approach, such as making transgenic mouse from
Rosa26 locus, will not be applied here).
Then the question is: you expect your mutation is a gain-of-function
mutation or loss-of-function mutation.
If your mutation is GOF mutation, it is easy, see Kras V12 KI strategy--
basically insert stopper element LSL before Kras V12 Exon. Note that the
allele LSL Kras V12 (before crossing with Cre) is a nul... 阅读全帖 |
|
w*******9 发帖数: 1433 | 42 Generally GOF test requires replicated observations, you need to group
somehow. Unlike the logistic regression, for linear regression, there's no
universally accepted approach for grouping. If U google, you can only find
very few GOF tests for the general linear regression and non of them are
found in the textbook.
to |
|
n*******4 发帖数: 2285 | 43 生物体作为超复杂系统肯定是有多侧面(Aspect)的。比如有生化的,机械的,电信号
的。越来越多的证据显示它还有一个重要的侧面那就是信息的。同人造机器不同,这些
侧面都是用分子机制实现的。研究这个侧面需要引进大量IT软件领域的概念和方法。比
如中心法则既然可以看做是一种OO机制,那么高等多细胞生物的Genome能不能看做是一
个OO Framework呢?有没有GOF式的design pattern 在里面呢?或是生物体特有的被反
复使用的pattern?巨大的Genome如何有效快速检索?按着这个思路可以提出一大堆问
题和模型来。 |
|
X****i 发帖数: 1877 | 44 【 以下文字转载自 Stock 讨论区 】
发信人: XiuShi (致力为花街散财,造福散户), 信区: Stock
标 题: $【2018年9月13日700个股票的短期谷底高峰预测】$
发信站: BBS 未名空间站 (Fri Aug 3 10:33:45 2018, 美东)
$【2018年9月13日最新的700个股票的短期谷底和高峰价的预测】$
【顶到99楼,就发更多得多最新并且更好机会的预测。】
【本想提供一千五百个预测,最后决定只提供一部分。】
【原因是,股版XMJDH的居多,忌才,典型劣币驱逐良币。】
对比预测,如果股价越极端,散户获暴利的机会和风险其实反而越佳。
花街的捣蛋,挤空或砸价,其实是制造极端价供精明的散户收割暴利。
花街这么做绝非善意,而是要吓唬散户在其人为的极端价割肉出局。
花街有用之不尽的代理基金和资金充炮灰,可以任性的挤高峰砸谷底。
花街有别人的代理钱来任性,用大量炮灰钱可以买出涨价,砸出跌价。
股票最不定因素,就是花街每天对散户的捣蛋,尤其挤高峰和砸谷底。
以下是为蝌蚪们提供的最基本,炒股绝对须要遵守,的注意事项:
1. 预备大量(>=50%)现金,准... 阅读全帖 |
|
d*******g 发帖数: 8992 | 45 武汉病毒所是疫情源头?石正丽:阴谋论者不相信科学
2020-02-06 19:24:55 来源: 澎湃新闻
举报
12728
易信
微信
QQ空间
微博
更多
(原标题:武汉病毒所是疫情源头?无事实依据,学者呼吁不要凭空假设)
中国唯一的P4生物安全实验室所在地中科院武汉病毒研究所,近日卷入了“新冠病毒源
头”风波。
该研究所的石正丽研究员率领的团队是蝙蝠病毒研究领域的权威,也是中国SARS(严重
急性呼吸道综合征)病毒的源头攻克团队。然而,随着疫情的进展,“实验室病毒泄漏
”、“人为制造新病毒”等流言开始笼罩在武汉病毒研究所及石正丽等人身上。
2月2日下午,石正丽在朋友圈回应:“2019新型冠状病毒是大自然给人类不文明生活习
惯的惩罚,我石正丽用我的生命担保,和实验室没有关系。”石正丽曾经的合作伙伴、
美国非营利组织生态健康联盟(EcoHealth Alliance)疾病生态学家Peter Daszak在接
受《科学》杂志(Science)采访时也表示,每当新疾病、新病毒出现时,都会产生诸
如实验室泄漏或者生物工程制造一类的“阴谋论”,“这令人... 阅读全帖 |
|
d*******g 发帖数: 8992 | 46 要是看不懂报道的内容,那还是别传播病毒是人工编辑并从实验室泄露的谣言啦。
当然,对于独轮运,造谣是天赋人权!
----------------------
https://news.163.com/20/0206/19/F4NOA6MQ0001899N.html
武汉病毒所是疫情源头?石正丽:阴谋论者不相信科学
2020-02-06 19:24:55 来源: 澎湃新闻
举报
12728
易信
微信
QQ空间
微博
更多
(原标题:武汉病毒所是疫情源头?无事实依据,学者呼吁不要凭空假设)
中国唯一的P4生物安全实验室所在地中科院武汉病毒研究所,近日卷入了“新冠病毒源
头”风波。
该研究所的石正丽研究员率领的团队是蝙蝠病毒研究领域的权威,也是中国SARS(严重
急性呼吸道综合征)病毒的源头攻克团队。然而,随着疫情的进展,“实验室病毒泄漏
”、“人为制造新病毒”等流言开始笼罩在武汉病毒研究所及石正丽等人身上。
2月2日下午,石正丽在朋友圈回应:“2019新型冠状病毒是大自然给人类不文明生活习
惯的惩罚,我石正丽用我的生命担保,和实验室没有关系。”石正丽... 阅读全帖 |
|
g***i 发帖数: 408 | 47 多接口是design的大忌,这一点GoF讲的很清楚,现实生活中这么玩可能是高手,面试
的时候可千万别
这么回答。
而且多接口照样解决不了加一个STYLE (Desk),要创建很多个子类(WoodDesk,
SteelDesk)的
问题。 |
|
g***i 发帖数: 408 | 48 其实任何DESIGN PATTERN 都回归于GOF说的3句话
PROGRAMMING TO INTERFACE RATHER THAN CLASS
FAVOR OBJECT COMPOSITION OVER class INHERITANCE
ENCAPSULATE WHAT VARIES
对于有很多年设计经验的人来说,PATTERN不PATTERN都不是那么重要了,
这里变化的就是 STYLE和MATERIAL, 所以必然是要封装的,再加上(PROGRAMMING TO
INTERFACE RATHER THAN CLASS) 于是我们有了这两个interface。
再根据“FAVOR OBJECT COMPOSITION OVER INTERFERENCE” 排除做MULTIPLE
INHERITANCE, 于是我们就做一下composition,把STYLE和material作为家具的属性。
严格的来讲,这里的桥不是那么明显:)
为了让这样桥更明显就是单单把MATERIAL从家具中分离出来
家具有一个property MATERIAL (例如wood,steel,...), 和 |
|
m******9 发帖数: 968 | 49 我想它这个说的就是面向对象的编程,公司里的project肯定是用到很多design
pattern的,所以至少要对常用的pattern比较熟悉,
可以看看design pattern的书
可以看看gof的书,我以前也下载过一个叫做“大话设计模式”的书,通俗易懂,在
verycd上可以找到 |
|
|