<
查看: 1830|回复: 17
收起左侧

请问Design Pattern在实际工作中重要吗?

|只看干货
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (2)
 
 
0% (0)    👎

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?注册账号

x
最近在看一个design pattern的教程,但是越看越不明白一个问题:
Design Pattern在实际工作中究竟重要吗?求有经验的大佬谈谈对设计模式的看法。

上一篇:求前端大神指点
下一篇:Mac上面像WINSCP这样的FTP界面工具推荐一下吧
ourgit 2021-5-14 10:17:14 | 显示全部楼层
本楼: 👍   100% (3)
 
 
0% (0)   👎
全局: 👍   72% (1959)
 
 
27% (739)    👎
非常重要,算法,设计模式都是基本功。
回复

使用道具 举报

本楼: 👍   100% (2)
 
 
0% (0)   👎
全局: 👍   100% (116)
 
 
0% (0)    👎
首先我认为设计模式本身不是绝对的知识,更多是前人总结的面对特定问题的最佳解决方案。对比之下OOP的很多概念比如 overload 虽然也可以归结为最佳解决方案,但很多编程语言是有对应的语言特性进行支持的。正是因为设计模式基于经验主义的本质,学习设计模式时我们往往首先要去思考它具体解决了什么问题。

这些问题很多时候是我们在大学或研究生学习过程中难以遇到的(例:https://refactoringguru.cn/design-patterns/bridge)哪怕对于有工作经验的人来说也不一定会遇到类似的问题,所以直接快进到学习面对这种问题的最佳实践是有点空中楼阁的。我上面的链接的网站是我目前看到讲解设计模式最通俗易懂的了,但很多时候他依然只能举一些简单的,脱离实际的例子。因为只有你真正在复杂的环境下遇到了对应的问题,或者看到了没有遵循设计模式的垃圾代码,才会理解并赞叹设计模式的精妙。

综上所述,由于解决问题的scope不同,不同设计模式的重要性也不同。有一些设计模式会解决一些比较常见的问题,比如工厂模式,抽象工厂模式等。还有一些设计模式解决的是比较特定的问题,比如享元模式。我认为只熟练掌握比较频繁出现的设计模式性价比是最高的。同时,很多人学习设计模式有点类似国内java八股面试的感觉,我认为这也是舍近求远的。哪怕我们的经验局限导致没有特别好对应每种设计模式的例子,依然应该尽量从现实问题出发,想象一下遇到类似问题如果没有设计模式我会怎么做,再看看这个设计模式选择怎么做,可能会理解的更深入一些。

最后推荐一些遵循我上述思路的比较好的资源:
https://refactoringguru.cn/
https://www.runoob.com/design-pa ... ttern-tutorial.html
https://www.youtube.com/watch?v= ... ARdnO4ueTUAVR9eMBpc

评分

参与人数 1大米 +1 收起 理由
ChristinaT + 1 欢迎分享你知道的情况,会给更多积分奖励!

查看全部评分

回复

使用道具 举报

zea7ot 2021-5-14 08:22:25 | 显示全部楼层
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   97% (837)
 
 
2% (19)    👎
很重要。
很多Cloud Design Pattern就是基于这些基础的Design Pattern。

之前见到过面条代码,看到吐血。

评分

参与人数 1大米 +1 收起 理由
ChristinaT + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

TB2020 2021-5-13 23:00:33 | 显示全部楼层
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   93% (2122)
 
 
6% (146)    👎
很重要,但是大部分人感觉都乱用一气,不是完全不用,就是over design。说白了需要理解都是在什么场景下需要,利弊在那里,然后再根据情况考虑是否使用。
另外就是说的时候显得高大上一点,很多时候为了解决一些问题已经用了无数design pattern,但是可能自己都不知道对应的是那个已有的pattern,干活没有问题,沟通时候就差了一些。

评分

参与人数 2大米 +4 收起 理由
zea7ot + 3 给你点个赞!
ChristinaT + 1 欢迎分享你知道的情况,会给更多积分奖励!

查看全部评分

回复

使用道具 举报

pandami 2021-5-13 23:38:14 来自APP | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   94% (27109)
 
 
5% (1674)    👎
对以后的人很重要,但是很多人不懂,所以才有那么多shi一样的legacy code。

评分

参与人数 2大米 +4 收起 理由
zea7ot + 3 面条代码的画面一下子就映入了我的脑海
ChristinaT + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

zea7ot 2021-5-14 08:19:30 | 显示全部楼层
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   97% (837)
 
 
2% (19)    👎
pandami 发表于 2021-5-13 23:38
对以后的人很重要,但是很多人不懂,所以才有那么多shi一样的legacy code。
面条代码的画面一下子就映入了我的脑海
回复

使用道具 举报

 楼主| ChristinaT 2021-5-14 08:20:01 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (2)
 
 
0% (0)    👎
本帖最后由 ChristinaT 于 2021-5-14 08:21 编辑
TB2020 发表于 2021-5-13 23:00
很重要,但是大部分人感觉都乱用一气,不是完全不用,就是over design。说白了需要理解都是在什么场景下需 ...

感谢解释,那请问系统设计在工作中的重要性呢?如果都很重要,我很奇怪为啥学校从来不教授这些课程...
回复

使用道具 举报

 楼主| ChristinaT 2021-5-14 08:21:24 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (2)
 
 
0% (0)    👎
pandami 发表于 2021-5-13 23:38
对以后的人很重要,但是很多人不懂,所以才有那么多shi一样的legacy code。

感谢解释,那请问系统设计在工作中的重要性呢?
如果都很重要,我很奇怪为啥学校从来不教授这些课程...
回复

使用道具 举报

 楼主| ChristinaT 2021-5-14 08:23:41 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (2)
 
 
0% (0)    👎
zea7ot 发表于 2021-5-14 08:22
很重要。
很多Cloud Design Pattern就是基于这些基础的Design Pattern。

感谢解释,那请问系统设计在工作中的重要性呢?如果都很重要,我很奇怪为啥学校从来不教授这些课程...
回复

使用道具 举报

本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   92% (647)
 
 
7% (52)    👎
ChristinaT 发表于 2021-05-13 17:23:41
感谢解释,那请问系统设计在工作中的重要性呢?如果都很重要,我很奇怪为啥学校从来不教授这些课程...
巧妇难为无米之炊,没有一定的项目经验学不懂这个,我觉得很多教授也不真正懂
回复

使用道具 举报

flysheep 2021-5-14 09:09:32 来自APP | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   98% (531)
 
 
1% (9)    👎
非常重要,不学的话很多代码结构都可能看不懂
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

隐私提醒:
■拉群请前往同学同事飞友|拉群结伴版块,其他版块拉群,帖子会被自动删除
■论坛不能删帖,为防止被骚扰甚至人肉,不要公开留微信等联系方式,请以论坛私信方式发送。
■特定版块可以超级匿名:https://tools.1point3acres.com/thread
■其他版块匿名方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

>
快速回复 返回顶部 返回列表