
1 loading 2016-06-06 22:29:13 +08:00 via Android 我从来没看过… |
2 hinkal 2016-06-06 22:34:14 +08:00 怎么看指的是?软件编码是一门经验学科,没有什么太多客观规律。设计模式就是经验总结。 |
3 xiusedelang 2016-06-06 23:17:31 +08:00 via Android 隔几个月翻出来看一遍,渐渐融入自己的日常中。 |
4 techme 2016-06-06 23:19:21 +08:00 我就记得了一条,不能为了模式而用模式 |
5 zealic 2016-06-06 23:21:36 +08:00 世上本没有模式,用的人多了,也就成了模式 |
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 这些模式当然需要了解,但更重要的是理解背后的 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 ming2050 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 明明是面向对象语言的设计模式 这几条原则倒是各个语言通用的: 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 PRO 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 荼毒 |
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:0 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 看后发现很多方法其实都用过了,遂不看 |