码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Java设计模式 思想原则重构】设计思想、设计原则、重构总结


    从2022年3月6日开始学习设计模式相关知识【Java设计模式 前言】我为什么要学习设计模式,到现在半年余,终于将设计思想、设计原则、重构相关内容学习完了,设计模式也学习完了创建型和结构型,回顾年度目标,不得不说【设计模式】是个难啃的骨头,还是要今年啃完:
    在这里插入图片描述
    不过学习完了收获也是最大的,这个收获更多的是道的收获,培养的是一种潜意识,可以说内功有所提升这里对设计思想、设计原则、重构相关内容做个总结,设计模式则等待行为型都学习完后再进行一个统一的总结。
    在这里插入图片描述

    整体目标

    回看最初的目标:【Java设计模式 学习目标及大纲】高质量代码的标准及实现路径在这篇Blog里我们明确了什么是高质量的代码:易维护、易读、易扩展、灵活、简洁、可复用、可测试,也知道高质量代码的达成路径工具箱:面向对象设计思想是基本指导思想,是很多设计原则、设计模式的实现基础;设计原则是代码设计的抽象经验总结、是设计模式设计的指导原则;设计模式是代码设计的一套具体解决方案或设计思路,主要用来提高代码可扩展性;编程规范是一套可执行的代码编写规范,主要用来提高代码的可读性;代码重构依赖面向对象设计思想、设计原则、设计模式、编程规范实现,主要用来提高代码的可维护性和可读性。

    • 面向对象设计思想因为其具有丰富的特性(封装、抽象、继承、多态),可以实现很多复杂的设计思路,是很多设计原则、设计模式等编码实现的基础。理论支撑,实现基础,核心思想:编程规范及代码组织
    • 设计原则是指导我们代码设计的一些经验总结,对于某些场景下,是否应该应用某种设计模式,具有指导意义。比如,“开闭原则”是很多设计模式(策略、模板等)的指导原则。代码组织:高质量编程的道
    • 设计模式是针对软件开发中经常遇到的一些设计问题,总结出来的一套解决方案或者设计思路。应用设计模式的主要目的是提高代码的可扩展性。从抽象程度上来讲,设计原则比设计模式更抽象。设计模式更加具体、更加可执行。代码组织:高质量编程的术
    • 编程规范主要解决的是代码的可读性问题。编码规范相对于设计原则、设计模式,更加具体、更加偏重代码细节、更加能落地。持续的小重构依赖的理论基础主要就是编程规范。编程规范
    • 代码重构作为保持代码质量不下降的有效手段,利用的就是面向对象、设计原则、设计模式、编码规范这些理论。高质量编程实践

    实际上,面向对象、设计原则、设计模式、编程规范、代码重构,这五者都是保持或者提高代码质量的方法论,本质上都是服务于编写高质量代码这一件事的。也可以这么理解:设计思想、设计原则、设计模式、编程规范,在合适的时机进行代码重构,时刻保证和提高代码的质量 ,它们之间的关系可以组织为:
    在这里插入图片描述

    设计思想

    面对对象思想博客列表和文章脉络:

    文章列表

    序号文章列表
    1【Java设计模式 面向对象设计思想】一 再谈面向对象和封装、抽象、继承、多态四大特性
    2【Java设计模式 面向对象设计思想】二 再谈面向对象和面向过程
    3【Java设计模式 面向对象设计思想】三 再谈抽象类和接口
    4【Java设计模式 面向对象设计思想】四 基于接口而非实现编程
    5【Java设计模式 面向对象设计思想】五 多用组合少用继承编程
    6【Java设计模式 面向对象设计思想】六 再谈MVC贫血模式与DDD领域驱动开发
    7【Java设计模式 面向对象设计思想】七 面向对象分析、面向对象设计和面向对象编程

    基于以上文章划分的脉络如下:

    文章结构

    关于面向对象思想的文章结构如下
    在这里插入图片描述

    关键知识点索引

    具体关键概念的索引脑图
    在这里插入图片描述

    设计原则

    关于设计原则的文章列表,文章脉络,概念结构

    文章列表

    序号文章列表
    1【Java设计模式 经典设计原则】一 SOLID-SRP单一职责原则
    2【Java设计模式 经典设计原则】二 SOLID-OCP开闭原则
    3【Java设计模式 经典设计原则】三 SOLID-LSP里式替换原则
    4【Java设计模式 经典设计原则】四 SOLID-ISP接口隔离原则
    5【Java设计模式 经典设计原则】五 SOLID-DIP依赖反转原则
    6【Java设计模式 经典设计原则】六 KISS、YAGNI和DRY原则
    7【Java设计模式 经典设计原则】七 LOD迪米特法则

    这其中涉及到不少知识点,总体总结在这里:

    文章结构

    其中【基于接口而非实现编程】和【多用组合少用继承】不仅是一种编程技巧,也是编程思想和最佳实践。
    在这里插入图片描述

    关键知识点索引

    关键知识索引如下:
    在这里插入图片描述

    代码重构

    重构相关的文章列表、文章脉络和关键索引

    文章列表

    代码重构部分的文章列表如下:

    序号文章列表
    1【Java设计模式 规范与重构】 一 重构的目的、内容、时机、方法
    2【Java设计模式 规范与重构】 二 重构的保障:单元测试,以及如何提高代码可测试性
    3【Java设计模式 规范与重构】 三 大型重构的手段:高内聚,低耦合
    4【Java设计模式 规范与重构】 四 小型重构的手段:规范的十五条军规
    5【Java设计模式 规范与重构】 五 重构实战:基于ID生成器case

    文章结构

    代码重构部分的文章结构如下:
    在这里插入图片描述

    关键知识点索引

    关于重构部分知识点,关键索引如下
    在这里插入图片描述

    总结一下

    对于总结的总结来说,好像没什么可说的,一言以蔽之:通过继承、封装、多态、抽象、基于接口而非实现编程、多用组合少用继承、高内聚-松耦合、控制反转等设计思想;SOLID、KISS、DRY、YAGNI、LOD等设计原则和法则;创建型、结构型、行为型这些设计模式;依赖注入等编程技巧;模块化等系统设计技巧;命名与注释、编程风格、编程技巧等编程规范,在持续的重构中发挥作用。通过单元测试保证重构的顺利进行。而最终的目的都是保证易扩展、易维护、易复用、易读、简介、灵活、易测试的高质量代码活力常在。

  • 相关阅读:
    webpack常用配置(二)之拆分配置
    一文了解 history 和 react-router 的实现原理
    Vue18 v-for指令 展示列表数据
    Stream 的使用,我觉得使用它是非常方便的
    华为云算法零门槛:零基础教你AI试伊妆
    电子协会 C语言 1级 31 、 计算线段长度
    您的私人办公室!-----ONLYOFFICE8.1版本的桌面编辑器测评
    AI在商业逻辑应用中的革命性作用
    数学建模十大算法03—线性规划、整数规划、非线性规划、多目标规划
    Game101作业5以及光线追踪笔记
  • 原文地址:https://blog.csdn.net/sinat_33087001/article/details/127036653
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号