程序员修炼之道从:小工到专家第六章读书笔记

news/2024/11/20 21:12:08/文章来源:https://www.cnblogs.com/wjhfree/p/18559293

松耦合
关注点分离:将不同的功能模块独立出来,使得模块之间的耦合度降低。
接口和实现分离:通过接口定义模块的功能,实际的实现可以在不影响其他模块的情况下进行修改。
事件驱动编程:通过事件和回调机制,使得系统的各个部分可以在不直接影响彼此的情况下进行交互。

观察者模式
观察者模式:这是一种设计模式,允许对象(观察者)在另一个对象(被观察者)的状态改变时收到通知。
应用场景:适用于需要解耦类的依赖关系,尤其是在系统中有多个部分需要对同一状态变化做出反应时。

设计模式
适配器模式:将一个类的接口转换成客户希望的另一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
策略模式:定义一系列算法,将每一种算法封装起来,并使它们可以互换,使得算法的变化独立于使用它们的客户。

控制反转

控制反转:一种编程原则,系统中的控制流程不再是开发者预先定义的,而是由框架或者控制器来决定。
依赖注入:依赖注入是控制反转的一种实现方法,通过依赖注入,可以使对象之间的依赖关系更具弹性。

实践建议
编写“可插拔”的代码:在设计系统时,考虑模块的独立性和可替换性,使得系统可以更容易地适应未来的变化。
使用设计模式的智慧:学习并应用常见的设计模式,如观察者模式、适配器模式、策略模式等,以提高代码的灵活性和可读性。
文档化接口:明确地定义和文档化模块之间的接口,确保团队中的每个人都能理解并遵守这些接口约定。
编写测试用例:在开发过程中,编写单元测试和集成测试用例,确保代码的变化不会破坏现有的功能。
持续重构:随着项目的发展,不断优化和重构代码,以保持代码的简洁性和可维护性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/837535.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

可信执行环境(TEE)学习笔记

可信执行环境(TEE)学习笔记来越多的数据在云环境下进行存储、共享和计算,云环境下的数据安全与隐私保护也逐渐成为学术界以及工业界关注的热点问题。目前阶段,隐私保护技术主要基于密码算法及协议(如安全多方计算、同态加密等)完成场景落地,其优点主要在于具有较高的安全…

同步与互斥与通信

同步与互斥 同步:两任务要协调 互斥:两任务要争用 举一个例子。在团队活动里,同事A先写完报表,经理B才能拿去向领导汇报。经理B必须等同事A完成报表,AB之间有依赖,B必须放慢脚步,被称为同步。在团队活动中,同事A已经使用会议室了,经理B也想使用,即使经理B是领导,他也…

Windows 自动色彩管理(ACM)

在一些笔记本上Win11可以看到设置里有“自动管理应用的颜色”选项,有些笔记上没有。这里讲下“自动管理应用的颜色”的显示规则 看华为MetaBook E设置界面显示:“自动管理应用的颜色”与“颜色自适应”是一个功能? 不是,颜色自适应是要依赖环境颜色传感器来实现的,有环境颜…

闲话 11.20

杂题乱写 11.2010 days left. 不说闲话,捡重点说。P4113 [HEOI2012] 采花 hh 的项链加强版。 首先考虑莫队,轻松写,轻松 133pts,轻松过不了后两个 hack,考虑优化。 既然是加强版,那么就考虑沿用之前的思路。记录上次出现某个数的位置和上上次出现某个数的位置,离线之后将…

CTFshow渗透知识点

1.robot.txtRobots是一个协议,全称为“网络爬虫协议”,也称爬虫协议、机器人协议等。网站通过Robots协议告诉搜索引擎哪些页面可以访问,哪些不可以访问。 使用方法: 在浏览器的网址搜索框中,输入根域名,再输入/robots.txt即可 博客:Robots.txt在渗透测试中的利用_robots.…

Goby 漏洞发布|超高危!Palo-alto-panos createRemoteAppwebSession.php 命令执行漏洞CVE-2024-0012 CVE-2024-947

漏洞名称:Palo-alto-panos createRemoteAppwebSession.php 命令执行漏洞CVE-2024-0012 CVE-2024-947 English Name:Palo-alto-panos /php/utils/createRemoteAppwebSession.php Command Execution Vulnerability CVE-2024-0012 CVE-2024-9474 CVSS core: 9.5 漏洞描述: Palo…

一个.NET开源、快速、功能丰富的跨平台阅读服务器

前言 今天大姚给大家分享一个基于.NET开源的快速、功能丰富的跨平台阅读服务器,它的设计初衷是提供一个全面的解决方案,满足用户的所有阅读需求。用户可以设置自己的服务器,并与朋友和家人分享阅读收藏:Kavita。 支持格式书籍:epub, pdf。 漫画/网络漫画/漫画书:cbr, cbz…

人工智能之机器学习线代基础——矩阵分类

1. 按维度和大小方阵(Square Matrix):行数和列数相等的矩阵。列矩阵(Column Matrix):只有一列的矩阵。行矩阵(Row Matrix):只有一行的矩阵。零矩阵(Zero Matrix):所有元素均为 0。单位矩阵(Identity Matrix):对角线为 1,其他元素为 0 的方阵。对角矩阵(Diagon…

Linux 命令之 tar

目录1 tar 命令介绍2 压缩与解压缩2.1 压缩2.2 解压4 高级用法4.1 排除目录4.2 显示进度4.2.1 脚本解压缩4.2.2 命令解压缩4.2.3 压缩进度 1 tar 命令介绍常见的压缩包有 .tar.gz、.tar.xz、.tar.bz2,以及 .rar、.zip、.7z 等压缩包。常见的 tar 选项:- 1. 文件操作选项:-c,…

2024年11月最新版Adobe PhotoShop(26.0)中文版下载

Adobe PhotoShop 是一款功能强大的应用程序,已被各种公司、专业艺术家、设计和创作者广泛使用。该程序允许您创建、编辑和合成多层、蒙版和多种颜色模型(包括 RGB、专色、CMYK 等)的光栅图像。点击跳转下载页面 Adobe PhotoShop 是一款功能强大的应用程序,已被各种公司、专…

SpringBoot如何集成mybatis-plus

前言 大家好,我是小徐啊。我们在使用SpringBoot的时候,毫无疑问,一般是和mybatis集成的,而mybatis-plus作为mybatis的进阶,又是必须要集成的。今天,小徐就来介绍下如何在SpringBoot中集成mybatis-plus。 如何集成 首先,讲一下如何在配置文件中配置mybatis-plus的配置。主…

ubuntu安装docker+后端发布

一:更新软件包索引,并且安装必要的依赖软件 1.sudo apt-get update #更新软件包索引 2.sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common lsb-release #安装apt依赖包,用于通过HTTPS来获取Docker 仓库 二:添加 D…