不知道 v2 上适不适合发这个, 报着尝试心态, 还是非常想问问前辈们

2019-08-27 10:34:55 +08:00
 zazalu

有哪些设计模式是你在完全不了解或者说没有借鉴之前就通过自己的一些编程基础能够想到并实现的呢?

就是那种灵光一现, 突然顿悟了某种设计模式的存在意义

3287 次点击
所在节点    程序员
6 条回复
18258226728
2019-08-27 10:42:22 +08:00
感觉模板最简单,当初不知道模板设计模式,想着那么多相同行为不同实现的代码,再会想到还有抽象这个概念,然后自己写出来了
Inside
2019-08-27 10:51:04 +08:00
当然是工厂模式,这个是最容易想到的。

设计模式是方法,可以不用太纠结,目标应该是 Single Point Of Truth.
opengps
2019-08-27 10:55:22 +08:00
单例模式就是,当年刚毕业,特别喜欢用全局静态变量,重新学了单例后发现,自己喜欢用全局静态变量就是为了单例的效果
otakustay
2019-08-27 11:07:34 +08:00
事实上大部分设计模式是无论你知道不知道,一直会在用的
比如有问题套一层-不是 proxy 就是 decorator
比如搞个接口有不同实现按需选-基本是 strategy
你甚至可以说类太多了搞一个静态的封装一下-硬说是 fascade
写个 flutter-你不用 state 都难
然后还有几个
像 responsibility chain,你说一定要 chain 吗我用个数组动态注入进来 for 调用可以吗,显然是可以的
再比如像 builder,你说一定要 build 吗搞个 factory 直接造出来有什么不妥吗,显然是没有太多不妥的
那个 observer 一定要这么多接口吗直接搞个事件机制行不行,那当然必须是可以的
真正麻烦的几个像 mediator、bridge、flyweight、command 确立是只解决特定场景的特定问题的,不是说他们很难想出来,而是普通人本身就不容易遇到这些场景
至于工厂,我真的很想吐槽工厂模式占 3 个这种奇葩,也很想吐槽没有工厂配合的话 90%的设计模式都会没有任何意义这件事……
fvckDaybyte2
2019-08-27 16:22:44 +08:00
@opengps 单例不就是实例化后保存为全局静态变量来实现么...
otakustay
2019-08-27 16:59:31 +08:00
@fvckDaybyte2 不全是,单例的完全体是配合工厂根据上下文来单例出一个自己的子类来,同时拥有静态的能力和多态性

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/595452

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX