• 【设计模式】思考设计模式有什么用?


    一般开始学习一个新的知识前,我会思考为什么要学,他对于我的工作和生活有什么帮助?

    对于设计模式,主要是为了应对代码难以维护的问题。比如结构混乱,复用性太低,或者一个新需求需要改很多旧代码。

    那么,什么是好的软件设计?

    高内聚,低耦合
    好维护,好复用

    什么是垃圾的设计?

    • 新需求需要改的地方很多,甚至要重写。
    • 改一个地方发现牵一发而动全身,根本不敢改。
    • 全是if else ,要逐步去加判断。
    • 让调用者去关心实现逻辑。也就是我用一个方法或者类,还要把这个类理解一遍。

    总体的思想:

    抽象、复用、单一职责。

    其实学习设计模式很简单,但是用好它很难。什么时候该用什么样的模式,是否滥用了,是否让我的维护越变越难了?

    对于这样的问题,我是这样看待的:

    软件设计复杂性的根本问题:需求变化。

    首先要了解产品的走向,简要分析下这个需求可能会怎么变。然后尽可能地增加复用性。
    然后开始思考设计模式。
    最后回想,这样是变简单了,还是变复杂了?

    比如一个很简单的功能,统计某个接口请求次数。
    如果以后基本不可能改了,那就直接一个方法就完了,不用想太多。
    如果感觉以后可能要多个接口,那就考虑一下设计模式,以后增加接口不用改这一版的代码。
    如果感觉以后要做统计分析,表的设计也要优化一下。
    如果感觉这个量很大很大,是不是要分一下表。

    总结

    最后,凡事都有度,别过于纠结于模式,核心是为了更快地应对需求的变化。
    我们从一味图快中走出来,能抽象则抽象,能复用则复用,都是为了以后改起来更方便。
    如果你还有一颗热爱编程的心,不要停止学习,如果一直图快,你的技术不会进步的,也就不可能跳出这个水平圈,就会一直在还技术债,最后感觉做不下去了。
    学习不会短期内提高你的工资,甚至会让你更累,但是会为你的未来种下一颗种子,总有一天会发芽的。

  • 相关阅读:
    随机id
    vue关于父组件调用子组件的方法
    ES6——块级作用域
    在vue中引用superMap
    MSSQL备份脚本
    Ubuntu 使用命令导出数据库
    CSS before 中文乱码
    CentOS7 安装linux 网络不联通问题
    SVN update failed问题解决
    JQ实现树形菜单点击高亮
  • 原文地址:https://www.cnblogs.com/HappyTeemo/p/16283656.html
Copyright © 2020-2023  润新知