软件架构设计模式——从腐烂的不良设计中品读软件的人格障碍

本文主要是介绍软件架构设计模式——从腐烂的不良设计中品读软件的人格障碍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 僵硬性
  • 脆弱性
  • 不可移植性
  • 粘滞性
  • 不必要的复杂性
  • 不必要的重复性
  • 不透明性

在这里插入图片描述需求总是变化的,我们的系统会不断变化,不良设计会随着时间会慢慢变得更糟糕。设计的时候设计者鼠目寸光,没有长远规划,会给未来留下隐患。

僵硬性

在这里插入图片描述
在这里我们提到了耦合度的问题,**耦合度描述了一个对象依赖于另外一个对象的程度。**松耦合的对象可以独立发生变化,彼此互相不影响。这也是我们系统设计的目标。

class A{int x;...
}
class B extends A{void b(){x=5;}...
}

如上述例子,我们的B强依赖于A(继承关系),如果我们修改了A中的变量名称,那么我们也需要修改B里面的代码,这样B才能正常工作。这样的代码我们是不提倡的。我们尽量用组合关系(弱依赖)而不是继承关系

class B {a = new A();void b(){a.x=5;}...
}

Erich Gamma(GoF)原则

  1. 尽量用组合关系而不是继承关系。
  2. 对接口进行编程,而不是对实现进行编程。

脆弱性

在这里插入图片描述
脆弱性啊,就是传说中的修改完了一个bug,会引来新bug。

不可移植性

在这里插入图片描述
我们一定要高内聚低耦合的设计,不可移植性是低内聚高耦合的。

粘滞性

在这里插入图片描述环境的粘滞性在布局的时候很麻烦。

不必要的复杂性

在这里插入图片描述本以为自己是深谋远虑,结果你以为的未来却并没有发生。

不必要的重复性

在这里插入图片描述

不透明性

在这里插入图片描述
写代码本来有代码规范,各种类名方法名应该是有可解释性的。

设计模式 是软件开发人员在软件开发过程中,针对一般问题的最佳解决方案,该方案能够被程序员反复应用于解决类似问题

设计模式 – 概述有相关类型的更全面的总结
设计模式类型事例有很通俗的类型例子讲解,可以提供感性认识
我们的设计模式学习中主要包含如下内容。
JAVA相关DPs
在这里插入图片描述今日写文音乐《有可能的夜晚》周深版

不能亲口说晚安
那就唱给你听吧

当你突然看我的时候
当话语开始多余的时候
当心慢慢靠近的时候
这时天刚好黑了
当我快忍不住的时候
当别人开始多余的时候
当爱悄悄来临的时候
这时天刚好黑了
无需言语
无尽浪漫
无限可能的夜晚
让蜡烛代替所有灯
让音乐代替话语声
此时无声胜有声
如果要我开口
只能说一句话
让我成为你的有可能
让yes代替所有no
让勇敢代替所有酒
刚下眉头却上心头
如果要我选择
只能爱一个人
让我成为你的有可能

当你突然看我的时候
当话语开始多余的时候
当心慢慢靠近的时候
这时天刚好黑了
当我快忍不住的时候
当别人开始多余的时候
当爱悄悄来临的时候

Quand il me prend dans ses bras 当他拥我入怀
Qu’il me parle tout bas 低声对我说话 Je
vois la vie en rose 我看见玫瑰色的人生
Il me dit des mots d’amour 他对我说爱的言语
Des mots de tous les jours 天天有说不完的情话
Et ça me fait quelque chose 这对我来说可不一般
让yes代替所有no
让勇敢代替所有酒
刚下眉头却上心头
如果要我选择只能爱一个人
让我成为你的有可能

如果只能说一句话
让我成为你的有可能

这篇关于软件架构设计模式——从腐烂的不良设计中品读软件的人格障碍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/208427

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

软件设计师备考——计算机系统

学习内容源自「软件设计师」 上午题 #1 计算机系统_哔哩哔哩_bilibili 目录 1.1.1 计算机系统硬件基本组成 1.1.2 中央处理单元 1.CPU 的功能 1)运算器 2)控制器 RISC && CISC 流水线控制 存储器  Cache 中断 输入输出IO控制方式 程序查询方式 中断驱动方式 直接存储器方式(DMA)  ​编辑 总线 ​编辑

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

【STM32】SPI通信-软件与硬件读写SPI

SPI通信-软件与硬件读写SPI 软件SPI一、SPI通信协议1、SPI通信2、硬件电路3、移位示意图4、SPI时序基本单元(1)开始通信和结束通信(2)模式0---用的最多(3)模式1(4)模式2(5)模式3 5、SPI时序(1)写使能(2)指定地址写(3)指定地址读 二、W25Q64模块介绍1、W25Q64简介2、硬件电路3、W25Q64框图4、Flash操作注意事项软件SPI读写W2

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

免费也能高质量!2024年免费录屏软件深度对比评测

我公司因为客户覆盖面广的原因经常会开远程会议,有时候说的内容比较广需要引用多份的数据,我记录起来有一定难度,所以一般都用录屏工具来记录会议内容。这次我们来一起探索有什么免费录屏工具可以提高我们的工作效率吧。 1.福晰录屏大师 链接直达:https://www.foxitsoftware.cn/REC/  录屏软件录屏功能就是本职,这款录屏工具在录屏模式上提供了多种选项,可以选择屏幕录制、窗口

SprinBoot+Vue网络商城海鲜市场的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质创作者,全网30w+

HomeBank:开源免费的个人财务管理软件

在个人财务管理领域,找到一个既免费又开源的解决方案并非易事。HomeBank 正是这样一个项目,它不仅提供了强大的功能,还拥有一个活跃的社区,不断推动其发展和完善。 开源免费:HomeBank 是一个完全开源的项目,用户可以自由地使用、修改和分发。用户友好的界面:提供直观的图形用户界面,使得非技术用户也能轻松上手。数据导入支持:支持从 Quicken、Microsoft Money

PDF 软件如何帮助您编辑、转换和保护文件。

如何找到最好的 PDF 编辑器。 无论您是在为您的企业寻找更高效的 PDF 解决方案,还是尝试组织和编辑主文档,PDF 编辑器都可以在一个地方提供您需要的所有工具。市面上有很多 PDF 编辑器 — 在决定哪个最适合您时,请考虑这些因素。 1. 确定您的 PDF 文档软件需求。 不同的 PDF 文档软件程序可以具有不同的功能,因此在决定哪个是最适合您的 PDF 软件之前,请花点时间评估您的