软件设计的原则

简介: 软件设计的原则

今天学习讨论了设计模式中软件设计的原则部分,通过老师的举例和层层深入的代码重构,让我明白了在设计软件的过程中,遵守相关的软件设计原则是多么的重要,不仅仅是方便日后查看代码,更是为了在维护更新代码的过程中减少我们的工作量,方便解决用户的需求问题。

首先,我们从一个简单的VB程序print 5+6入手,这样的代码非常的常见,我们也会在编写代码的过程中经常使用到,但是就是这么简单的一句代码,也有很大的改进空间,我们在编写代码的同时一定不能忘了经常提醒自己是否遵守了设计模式中的七大原则:

开闭原则:对扩展开放、对修改关闭

里氏替换原则:继承必须确保父类所拥有的性质在子类中仍然成立(例如:长方形不是正方形)

依赖倒置原则:要面向接口编程,不要面向实现编程

单一职责原则:控制类的粒度大小、将对象解耦、提高其内聚性(一个方法干好一件事(原子性))

接口隔离原则:要为各个类建立他们需要的专用接口

迪米特法则:只与你的直接朋友交谈,不跟“陌生人”说话。(不越级汇报。解耦)

合成复用原则:尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。

在设计模式的学习中,有一句话老师总是提到,就是“变是永远不变的”。这句话虽然听起来不符合逻辑,但是把这句话用到软件设计方面却是再适合不过了。因为我们在代码重构的过程中所做的操作就是将更多可变的因素控制成为不变的代码,比如用户要输入不同的数字,我们只需要定义一个变量来接受用户输入的数字即可,这样看似变化的数据,但是体现在代码中时就是不变的。把不变的算法结构抽象出来,变化的是千千万万种不同数字的组合。这样的软件设计理念不仅仅是在设计这种简单程序的时候要使用,越是重要,越是庞大的软件更需要遵守这样的软件设计原则,这样我们软件才能更好的更新迭代下去。



当我们真正熟悉并能能灵活使用这些软件设计的原则的时候,我们所编写的代码也就能更好的解耦合,更好的复用和灵活。在面对用户的不同需求的时候也不会焦头烂额。


目录
相关文章
|
Dubbo 网络协议 安全
【Dubbo 解析】Dubbo 支持哪些协议,它们的优缺点有哪些?
【1月更文挑战第11天】【Dubbo 解析】Dubbo 支持哪些协议,它们的优缺点有哪些?
|
7月前
|
机器学习/深度学习 人工智能 算法
ProtGPS:MIT再造生命科学新基建!蛋白质AI一键预测定位+设计新序列,登Nature子刊
ProtGPS 是麻省理工学院和怀特黑德研究所联合开发的蛋白质语言模型,能够预测蛋白质在细胞内的亚细胞定位,并设计具有特定亚细胞定位的新型蛋白质。
566 17
ProtGPS:MIT再造生命科学新基建!蛋白质AI一键预测定位+设计新序列,登Nature子刊
|
API 开发者 Python
API接口:原理、实现及应用
本文详细介绍了API接口在现代软件开发中的重要性及其工作原理。API接口作为应用程序间通信的桥梁,通过预定义的方法和协议实现数据和服务的共享。文章首先解释了API接口的概念,接着通过Python Flask框架示例展示了API的设计与实现过程,并强调了安全性的重要性。最后,本文还讨论了API接口在Web服务和移动应用程序等领域的广泛应用场景。
|
10月前
|
缓存 NoSQL Redis
Redis 缓存使用的实践
《Redis缓存最佳实践指南》涵盖缓存更新策略、缓存击穿防护、大key处理和性能优化。包括Cache Aside Pattern、Write Through、分布式锁、大key拆分和批量操作等技术,帮助你在项目中高效使用Redis缓存。
1118 22
|
人工智能 弹性计算 自动驾驶
2023 AI开发者生态报告:技术生态、开发范式与应用案例全景
随着人工智能技术的飞速发展,全球IT市场对AI的投入持续增长,预计到2027年将达到4236亿美元。
|
安全 前端开发 Android开发
移动应用开发的未来:跨平台框架与性能优化
随着移动设备的普及和移动应用市场的不断壮大,开发者们面临着如何在众多移动操作系统中高效开发和维护应用的挑战。本文将深入探讨跨平台框架在移动应用开发中的重要作用,分析其对提高开发效率和降低成本的贡献。同时,文章还将讨论如何通过性能优化技术提升应用的用户体验,确保在不同平台上的流畅运行。通过对最新技术和工具的介绍,本文旨在为移动应用开发者提供实用的指导和建议,帮助他们在竞争激烈的市场中脱颖而出。
201 27
|
网络协议 容器
【qt】如何获取本机的IP地址?
【qt】如何获取本机的IP地址?
288 0
|
存储 缓存 算法
C++从入门到精通:4.6性能优化——深入理解算法与内存优化
C++从入门到精通:4.6性能优化——深入理解算法与内存优化
758 1
CMake的拷贝文件到指定目录——CMake三板斧
CMake的拷贝文件到指定目录——CMake三板斧
1872 0
|
消息中间件 存储 运维
消息队列与消息中间件概述:消息中间件核心概念与技术选型
消息队列是一个存放消息的容器,消息队列是分布式系统中重要的组件,使用消息队列主要是为了通过异步处理提高系统性能、削峰、降低系统耦合性。
884 100

热门文章

最新文章