1
loading 2016-06-06 22:29:13 +08:00 via Android
我从来没看过…
|
2
hinkal 2016-06-06 22:34:14 +08:00 1
怎么看指的是?软件编码是一门经验学科,没有什么太多客观规律。设计模式就是经验总结。
|
3
xiusedelang 2016-06-06 23:17:31 +08:00 via Android 1
隔几个月翻出来看一遍,渐渐融入自己的日常中。
|
4
techme 2016-06-06 23:19:21 +08:00
我就记得了一条,不能为了模式而用模式
|
5
zealic 2016-06-06 23:21:36 +08:00 1
世上本没有模式,用的人多了,也就成了模式
|
6
jonechenug 2016-06-06 23:24:57 +08:00 via Android
少了一点套路,多一点实际
|
8
cwlmxwb OP @xiusedelang 每次阅读都有不一样的感觉吧
|
9
zonghua 2016-06-06 23:29:48 +08:00
只会定义调用函数
|
10
just4test 2016-06-06 23:30:43 +08:00
第一次看发现只是把自己用过的几种方式起了个名字。
|
11
ooonme 2016-06-06 23:39:40 +08:00 via iPad
函数式只能呵呵了
|
12
xavierchow 2016-06-06 23:42:12 +08:00 3
这些模式当然需要了解,但更重要的是理解背后的 OO 思想以及发现 bad smell 的能力。我个人更注重 SOLID principle( https://scotch.io/bar-talk/s-o-l-i-d-the-first-five-principles-of-object-oriented-design), 以前经常在发现 bad smell 后找思路的时候扫一眼 Gof 的 Design pattern, 但是不要照搬,更不要为了模式而模式。
|
13
qwerasdf 2016-06-06 23:47:38 +08:00
不想从零写一个大软件就不用看
|
14
xiusedelang 2016-06-07 01:23:29 +08:00
|
16
mringg 2016-06-07 05:02:16 +08:00 via Android
太多了,先学精三种吧
|
17
haozhang 2016-06-07 07:29:34 +08:00 via iPhone
23 种类使用方式...
|
18
ChefIsAwesome 2016-06-07 08:32:42 +08:00 1
明明是面向对象语言的设计模式
这几条原则倒是各个语言通用的: Encapsulate what varies. Favor composition over inheritance. Classes should be open for extension, but closed for modification. |
19
jeffersonpig 2016-06-07 08:34:57 +08:00
不了解,没在意过 T.T
|
20
stackboom 2016-06-07 08:37:14 +08:00
理解 SOLID ,大部分设计模式你都可以写出来。
|
21
litpen 2016-06-07 08:39:17 +08:00 via Android
在做项目的过程中没想过设计模式,做完后发现处处都有设计模式
|
22
sivacohan 2016-06-07 08:54:22 +08:00 via Android
设计模式可别瞎看。尤其是初学者。
那玩意是对自己写了几年,十几年代码里面的一个总结 。初学者看那玩意总会用力过猛。一切皆模式,一切皆对象,一切皆 xxx 。 相信我没有银弹,先看别人的项目,发现你在没看书之前就已经使用了 5 种以上设计模式的时候,你再好好看这书。 |
23
alexRH 2016-06-07 09:11:52 +08:00
这东西就像数学课本的课后习题,做了,你一样不会考试。
|
24
wudanyang 2016-06-07 09:14:38 +08:00
买了本书看
|
25
shakoon 2016-06-07 09:26:28 +08:00
几个人的小项目粗放管理时可能感觉不到,当我自己开始管理百万元级的项目时,发现这些都是前辈血淋淋的经验啊,太赞了,以前走了好多弯路。所以我带应届生,都会时不时提醒他们注意一些他们觉得不以为然的地方。方法论真的很重要,不懂设计模式只会长期停留在初级码农级别。
|
26
levn 2016-06-07 09:39:58 +08:00
设计模式概念是从建筑领域引入。所以么。
|
27
bigpigeon 2016-06-07 09:44:19 +08:00
就好像知道自己在做什么这种感觉吧,就好像为什么人要有名字一样
|
29
robertlyc 2016-06-07 09:49:08 +08:00
荼毒
|
30
cwlmxwb OP @ChefIsAwesome 就举了个 c++的例子嘛,我知道用在 Java python 都可以 只不过是个思想而已
|
31
jackisnotspirate 2016-06-07 09:51:17 +08:00
设计模式大约 Java C++ 用的多吧。
|
32
chrishine 2016-06-07 10:01:07 +08:00 via Android
23 种设计模式不过是剑招,学习剑招可以看 headfirst 系列,容易入门。
gof 设计模式中的第一章第二章是总剑诀(第三章是剑招,如果没记错的话),所有人关于设计模式的批判与赞扬,鄙视与崇拜,都逃不出总剑诀所述。 |
33
imcxy 2016-06-07 10:01:44 +08:00
你是怎么看的
|
34
cwlmxwb OP @imcxy 适当的时候使用设计模式可以让写出来的代码容易维护,举个例子,工厂模式,如果在某些特定的时候需要使用而没有使用,那么很可能会违反软件设计的开闭原则,代码清晰度也可能很糟糕(随处可见的 new )
|
35
murmur 2016-06-07 10:29:07 +08:00
学 java 的把 spring 那套东西全用一遍再看设计模式就懂了
|
37
wujunze 2016-06-07 10:31:08 +08:00
少一点套路 多一点技术
|
39
stcasshern 2016-06-07 10:41:32 +08:00
感觉有必要,当前读别人代码觉得怎么这么多事儿啊,后来接触设计模式,觉得果然精妙,当然小工程其实也没那必要
|
40
stcasshern 2016-06-07 10:42:08 +08:00
@wujunze 推荐《大话设计模式》,简单易懂
|
41
wujunze 2016-06-07 10:46:38 +08:00
@stcasshern 3Q 这本书讲了 23 种设计模式麽?
|
42
icybee 2016-06-07 10:48:03 +08:00
设计模式真的和语言无关么?
|
45
slert 2016-06-07 10:53:55 +08:00
实际用到的机会虽然不多,但是对设计原则的掌握对写代码肯定是有帮助的。
|
46
bramblex 2016-06-07 11:27:17 +08:00
@icybee
当然跟语言有关,只有 oop 语言才适用 oop 的设计模式。 换一门 functional 的语言, oop 的设计模式就都日狗了。 不过由于主流语言绝大部分是 oop 的,所以其实总体来说,设计模式的适用范围还是挺广的。 |
47
bramblex 2016-06-07 11:30:12 +08:00
|
48
imcxy 2016-06-07 11:38:57 +08:00
说黑虎掏心你可能一下子懵逼,但是其实你会了几十年了。
设计模式本身其实不是什么知识点。最大的作用其实只是一个知识总结。就是知道了:草黑虎掏心就是这玩意啊。 一切源自于生活,生活有许多原则。卖个肥皂,直接上门一家家卖会喝西北风,找个超市老板一下子就卖出去了。这就是生活。 |
49
kenshin 2016-06-07 11:59:51 +08:00
设计模式 = 理论(所以跟语言无关),需要具体实现(所以与语言有关)。
MVC /MVP /MVVM 这些都是设计模式。所以,一般情况下,无论你是否使用,它都在那儿。 拿 前端开发 举个例子:即便什么都不用,只用了 jQuery ,那么你相当于用了很多 设计模式,如:组合模式;适配器模式;外观模式;观察者模式;代理模式 等等。 设计模式是为了解决实际问题的,不要为了设计模式而设计模式。 :) PS :建议初学者不要接触,等以后有了语言有了自己的认识 or 项目经验后再看,会豁然开朗。尤其当你接手了一个旧项目后,利用好某些设计模式让你少走很多弯路。 |
50
acros 2016-06-07 12:02:52 +08:00
不知道 DP ,代码瞎写混乱 -> 了解 DP ,到处使用(尤其是单例···) -> 稍微知道点优缺点,谨慎使用 -> 项目更大了,多种 DP 混合使用,脑袋更不上,代码又乱了 -> 再翻四人帮书 -> 发现自己似乎更不懂 DP 了····
|
51
Mutoo 2016-06-07 12:11:57 +08:00
「哇,原来我一直在写的东西别人都取好名字了呀」
|
52
qqmishi 2016-06-07 12:36:58 +08:00 via Android
我记得在哪里看过一句,在不断的重构之中抽象总结出来的就叫模式
|
53
21grams 2016-06-07 12:48:54 +08:00 via Android
为什么是 23 种
|
55
changwei 2016-06-07 13:02:51 +08:00
框架内部已经实现了模式,我只是用框架的人而已,所以也可以认为我间接的使用了 N 种设计模式。
|
57
2owe 2016-06-07 13:36:14 +08:00
设计模式是前人提炼出来的一套开发思想,可以带给自己思考,这是坠吼滴!
除了 HeadFirst 系列,同事推荐郑晖的这本《冒号课堂》, https://www.amazon.cn/gp/product/B00A76JAD0/ |
58
unoyx 2016-06-07 17:55:12 +08:00
SOLID 是最重要的,《设计模式》、《 Game Programming Patterns 》这些都是为了在项目中使用 C++、 Jave 这类语言时,为了打到提高内聚、降低耦合等目标而实行的一些具体技巧。
|
59
zhgg0 2016-06-07 21:24:43 +08:00
看后发现很多方法其实都用过了,遂不看
|