1. 聚能聊>
  2. 话题详情

聊聊设计模式,什么是设计模式?你知道多少?

23种设计模式彩图
23种设计模式彩图
23种设计模式彩图
23种设计模式彩图
23种设计模式彩图
设计模式概念
设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。
使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。
关于设计模式的讨论

设计模式是为特定场景下的问题而定制的解决方案。
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。
设计模式是对读者经常遇到的设计问题的可再现的解决方案(The Smalltalk Companion)。
Patterns,顾名思义,具有某种重复性规律的方案。Design Patterns,就是设计过程中可以反复使用的、可以解决特定问题的设计方法。

那么:
1、什么是 GOF(四人帮,全拼 Gang of Four)?

2、用外行人能懂的方式说说什么是设计模式?

3、除了图中提到的23种设计模式,你还知道哪些?

4、用一个比喻来说说你认为设计模式在软件工程中的重要性。

参与话题

奖品区域 活动规则 已 结束

  • 奖品一

    阿里云代金券 x 4

  • 奖品二

    聆听专属T恤衫 x 3

  • 奖品三

    手机话费 x 2

21个回答

1

浮生递归 已获得阿里云代金券 复制链接去分享

你这书不错,什么名字,就是《设计模式:可复用面向对象软件的基础》吗?

1、什么是 GOF(四人帮,全拼 Gang of Four)?
GOF就是跳到EXCEL表的F那列的意思吧?开个玩笑。GOF:Erich Gamma, Richard Helm, Ralph Johnson,John Vlissides软件设计领域的四位世界顶级大师.合著有《设计模式:可复用面向对象软件的基础》,提出了23种基本设计模式,从理论高度提炼并规范了设计模式,对面向对象设计,软件复用领域产生了巨大影响。

2、用外行人能懂的方式说说什么是设计模式?
说人话:设计模式就是根据平时的软件设计经验,总结出一些特征,固定为模式,便于以后开发时,进行参考和应用。

3、除了图中提到的23种设计模式,你还知道哪些?
23种已经很多很全了吧,再有其他的话,也只是从不同的角度提取设计特征来定义,没有可比性。

4、用一个比喻来说说你认为设计模式在软件工程中的重要性。
偷懒,搜了张图。这是没有软件工程的软件项目,而设计模式就是施工图
image

微wx笑 回复

设计模式之禅

评论
2

pwdking 已获得聆听专属T恤衫 复制链接去分享

1、什么是 GOF(四人帮,全拼 Gang of Four)?

参见其他人的回答

2、用外行人能懂的方式说说什么是设计模式?

做事的最佳实践。更重要的是如何给同事介绍,最好的方法就是 demo

3、除了图中提到的23种设计模式,你还知道哪些?

  1. 数据库连接池 - 一组数据库连接实例的集合,为了复用;
  2. mvc - 模型,视图,控制器隔离,为了解耦;
  3. Blackboard - 应用于 AI 领域,参考 http://iambbrb.blogspot.com/2009/04/blog-post_22.html

4、用一个比喻来说说你认为设计模式在软件工程中的重要性。

喝汤用勺子,吃面用筷子,这就是设计模式,亦或最佳实践。

pwdking 回复

有用的话,T恤,多谢

评论
1

老离 已获得阿里云代金券 复制链接去分享

1、什么是 GOF(四人帮,全拼 Gang of Four)?

在 1994 年,由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四人合著出版了一本名为 Design Patterns - Elements of Reusable Object-Oriented Software(中文译名:设计模式 - 可复用的面向对象软件元素) 的书,该书首次提到了软件开发中设计模式的概念。

四位作者合称 GOF(四人帮,全拼 Gang of Four)。他们所提出的设计模式主要是基于以下的面向对象设计原则。

对接口编程而不是对实现编程。
优先使用对象组合而不是继承。

2、用外行人能懂的方式说说什么是设计模式?

设计模式是一种对现实的高度抽象,是对某些方面的问题的最佳解决方案(也不一定哦,应当是截至目前),就好像高考都想考到清华北大一样(但不能保证日后不会出现比这更好的学校)。

3、除了图中提到的23种设计模式,你还知道哪些?

一般需要了解的是这23种,常用的7种其它确实没了解过

4、用一个比喻来说说你认为设计模式在软件工程中的重要性。
这个可以结合面向对象来说,一开始你想吃月饼需要知道它是怎么做的,什么原料经过哪些流程,现在有了工厂模式,你不用具体的去关心这些,只需要说,给我来个月饼,具体的事情交给工厂的各个细分的车间去实现,对于使用者来说无疑是很大的简化和方便。

1

佛光普照 已获得手机话费 复制链接去分享

虽然还没有学习设计模式,但是我认为模式就是一种被人们反复利用的模板,恰好我在看某框架源码时发现了一种被大范围的使用,那就是接口与匿名类。比如xwork容器的实现,本身实现了对象的管理而不实现对象的创建,将对象的创建定义为接口,让用户去实现它,并将容器上下文以接口参数的形式暴露给使用者,虽然我讲不清,但是在我看来,这或许是一种设计模式,说不定就拿奖了呢~~说的不对请指出并原谅

1

李沃晟 已获得聆听专属T恤衫 复制链接去分享

1、什么是 GOF(四人帮,全拼 Gang of Four)?
《设计模式》(机械工业出版社)的作者,不过我没有看过,我看的是《head first 设计模式》

2、用外行人能懂的方式说说什么是设计模式?
现在需要盖房子,但是我们不知道以后是否需要增加楼层,我们就把顶层的柱子留好,以便后面加层。
3、除了图中提到的23种设计模式,你还知道哪些?
这真的不知道了。。。
4、用一个比喻来说说你认为设计模式在软件工程中的重要性。
设计模式就是一些前人的检验总结,按照目前的需求选择最优的设计模式,可以减少迭代的成本。个人感觉更接近于施工的宏观设计图纸吧

1

aoteman675 已获得阿里云代金券 复制链接去分享

1、什么是 GOF(四人帮,全拼 Gang of Four)?
Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 合著的《设计模式》,这本书列举并描述了 23 种设计模式,相当厉害。
2、用外行人能懂的方式说说什么是设计模式?
就是用大型收麦机一边收麦一边种麦,不用浪费油再跑一次
3、除了图中提到的23种设计模式,你还知道哪些?
掌握23种都是大神级人物啦,除非自己设计一种咯,还可以出本书。
4、用一个比喻来说说你认为设计模式在软件工程中的重要性。
一键ghost安装电脑系统,不需要复杂的配置,一切都设计好了,一键操作。对于不懂电脑的人来说,一键调用。

1

北方的郎 已获得阿里云代金券 复制链接去分享

1、什么是 GOF(四人帮,全拼 Gang of Four)?
一起写设计模式的4个牛人:Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides

2、用外行人能懂的方式说说什么是设计模式?
模式就是套路。看这个外行人喜欢什么,联系着讲就行了。比如喜欢风水,你就按风水那套选一个对比说一下就行。

3、除了图中提到的23种设计模式,你还知道哪些?
初学者玩这个经常搞成过度设计,这23个里面我常用的就几个比如Factory,Observer,Prototype什么的,有的名字我都忘了,反正已经成习惯了,到这种情况就这么玩。我现在用的套路里面应该有不在这23个里面的,不过也懒得细分啦。

4、用一个比喻来说说你认为设计模式在软件工程中的重要性。
就拿会不会降龙十八掌的郭靖来比喻吧。不会套路的郭靖让人打,会了套路的郭靖打别人。

1

沙漠的热情 已获得手机话费 复制链接去分享

1、什么是 GOF(四人帮,全拼 Gang of Four)?
《设计模式》的四位作者

2、用外行人能懂的方式说说什么是设计模式?
古语云:不听老人言吃亏在眼前。设计模式好比老人的经验、言论。

3、除了图中提到的23种设计模式,你还知道哪些?
这23种我尚不知,何谈其他。

4、用一个比喻来说说你认为设计模式在软件工程中的重要性。
设计模式之于软件工程,就好比行进队伍中识途的老马。

1

cjsoldier 已获得聆听专属T恤衫 复制链接去分享

1、什么是 GOF(四人帮,全拼 Gang of Four)?
这是个送分题啊。
《Design Patterns: Elements of Reusable Object-Oriented Software》(即后述《设计模式》一书),
由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 合著(Addison-Wesley,1995)。
这几位作者常被称为"四人组(Gang of Four)"。

2、用外行人能懂的方式说说什么是设计模式?
软件工程的设计模式是从建筑行业的设计模式借鉴来的。
所谓设计模式其实就是一种套路。以象棋为例:
当头炮,马来跳。如果对方架当头炮,你想保护中心卒,最好的办法就是马二进三或者马八进七。不这样走容易坏事。
再比如弃马十三招,任何人任何时候使出这招,你一眼就能看出来,甚至能预测接下来的棋局。
所以古语有云:“夫设计模式者,套路也。”

3、除了图中提到的23种设计模式,你还知道哪些?
23种都没吃透,其他的还真不知道。

4、用一个比喻来说说你认为设计模式在软件工程中的重要性。
就像红绿灯,灯一亮一切都井然有序了。

0

王文修 复制链接去分享

不知道了,但是好想有一件阿里的纪念品

微wx笑 回复

找你擅长的,认真回复,一定可以的。

评论
-1

陈家彪 复制链接去分享

1、什么是 GOF(四人帮,全拼 Gang of Four)?
这是个送分题啊。
《Design Patterns: Elements of Reusable Object-Oriented Software》(即后述《设计模式》一书),
由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 合著(Addison-Wesley,1995)。
这几位作者常被称为"四人组(Gang of Four)"。
2、用外行人能懂的方式说说什么是设计模式?
软件工程的设计模式是从建筑行业的设计模式借鉴来的。
所谓设计模式其实就是一种套路。以象棋为例:
当头炮,马来跳。如果对方架当头炮,你想保护中心卒,最好的办法就是马二进三或者马八进七。不这样走容易坏事。
再比如弃马十三招,任何人任何时候使出这招,你一眼就能看出来,甚至能预测接下来的棋局。
所以古语有云:“夫设计模式者,套路也。”
3、除了图中提到的23种设计模式,你还知道哪些?
23种都没吃透,其他的还真不知道。
4、用一个比喻来说说你认为设计模式在软件工程中的重要性。
就像红绿灯,灯一亮一切都井然有序了。

微wx笑 回复

好好玩,不要坏了规矩

评论
0

慕策 复制链接去分享

你好

0

夭零 复制链接去分享

怎么实现负载均衡?

0

尘お缘 复制链接去分享

😊

0

1795619807633470 复制链接去分享

写的!
f201826abe4f48b4829c99df131347af_1_1519808089.865053.jpg

0

易居乐筑 复制链接去分享

阿里云产品都很牛逼

0

晚餐 复制链接去分享

用外行人能懂的方式说说什么是设计模式?
搭建大厦

0

reddawn 复制链接去分享

hello world

0

小搜搜 复制链接去分享

慕课网中有详细介绍各种设计模式的视频

0

芳哥哥 复制链接去分享

哈喽

2