大佬们 指点指点
1
4kingRAS 2021-04-19 11:20:47 +08:00 2
|
3
huifer 2021-04-19 12:29:39 +08:00
就单表而言可以尝试模板模式,其他的操作可能并没有办法说直接使用某个设计模式。
|
4
abersheeran 2021-04-19 13:04:51 +08:00
设计模式就是代码模板……我个人觉得如果你能自己想到好的方式,那么别去看模板。如果你实在想不出来,先看模板,然后在多次练习之后忘掉它们。
|
5
zjsxwc 2021-04-19 14:36:15 +08:00
设计模式根本上是 SOLID 原则的实践例子。
个人对设计模式试用体会。 - 为了减少 Bug 出现,就不修改已有代码,或者无法修改三方代码根本接触不到三方源代码、或者没权限修改三方代码等等类似的场景。 - 配合依赖注入容器进行黑魔法。 - 常见的代码共识或者说习俗,比如为了节省内存提高性能的单例,参数很多且能够按需配置参数初始化时的 builder 、遍历树结构的 visitor 、编辑器支持撤销 undo 的命令模式、搞事件系统时用的观察者模式等等。 - 弥补当前编程语言表达能力的不足,比如 C#有了 delegate 就不用啰啰嗦嗦的和 Java 一样写一大堆类来实现观察者模式,比如动态语言 Ruby 、JS 、PHP 都可以运行时动态的给对象加方法,也就不需要和 Java 一样写一大堆类来实现代理模式 /装饰器模式等等。 |
6
slert 2021-04-19 15:09:55 +08:00
放心吧 CRUD 是用不到了 如果你有兴趣造轮子的话 或许会用到
|
7
3dwelcome 2021-04-19 15:43:05 +08:00
就像用 MD 来描述 BLOG 一样,也有人想用纯文本来描述后台表单之类的界面,并且做得也不错。
但是也不是每个需求都能抽象化,你 if else 要化简成配置文件,其实还挺难的。 我个人建议是,如果造轮子,那就多写一些源代码预处理工具。代码变少后,修改和维护成本就降低了。 |
8
BeautifulSoap 2021-04-19 15:59:16 +08:00 via Android
crud 你想用设计模式都不太能用到啊
也就工厂,单例这几个常用的,但问题是这几个模式就算你没学过设计模式平时也都在用。。。。。 |
9
unco020511 2021-04-19 16:15:41 +08:00
crud 好像没啥能设计的吧
|
10
niub 2021-04-20 09:22:05 +08:00
我的理解是:看情况。
我前两年总结过一次工厂模式配合策略模式的优化实践:地址在这里(有兴趣就看看吧): https://www.cnblogs.com/cone/p/12002913.html 项目中对于复杂或多变的需求,巧用设计模式能够解决很多问题,没什么好怀疑的。至于要不要优化,像 if else 这种逻辑判断,如果目前超过 2 次或 3 次,而且可预见的,未来还会有更多的 if else,那就赶紧重构了。 |
11
niub 2021-04-20 09:28:15 +08:00
补上一条回答:
我看到楼上有较多人回答 crud 没什么能设计的,这个理解我觉得有问题,我以 Java 为例,灵活定义接口,抽象类,配合设计模式真的会让代码可读性提升不是一点半点,你要是始终面向过程编码,那当我没说。 |
12
312ybj 2021-04-20 11:58:26 +08:00
一楼推荐的阿里文字已经很好了,“找到变化,封装变化”。 设计模式针对的就是变化。 楼上有人说 crud 用不到设计模式,curd 也是服务于业务,而业务是多变的。技术是业务需要的一个工具,当掌握每种设计模式的应用场景、特征、优缺点,以及每种设计模式的关联关系,就能很好地满足日常业务的需要。
|
13
312ybj 2021-04-20 13:11:54 +08:00 1
如果是真要学习设计模式的话, 必须要在实践中用到, 你先看看策略模式吧 我之前写过一篇博客 https://juejin.cn/post/6937158601584672804, 后面可以加上责任链之类的。书籍的话,还是要买一本,推荐《设计模式就该这样写》,给你推荐一个网站 https://refactoringguru.cn/design-patterns/catalog 。 祝你早日掌握设计模式的精髓
|
14
jones2000 2021-04-20 19:31:06 +08:00
只要能完成任务,上线,就可以了, 至于你怎么实现无所为了。 就跟你打架一样, 你是用华丽的十连斩,还是直接上去狂咬, 能把人干趴下就可以。
|
16
niub 2021-04-21 08:55:27 +08:00
@hhjswf 写配置?意思是业务逻辑写配置吗?我的理解是,端口 | IP 等这些环境信息写写配置,还可以,业务代码,类似逻辑判断这种写配置有点离谱吧,你目前是这么做的?(不杠,正常交流)
|
17
Nauyus 2021-04-22 17:04:39 +08:00
学习设计模式的三个阶段:不会用,滥用,合理使用
|