当前位置:首页 > 科技  > 软件

你应该知道的主要软件设计原则

来源: 责编: 时间:2024-07-05 09:07:26 1219观看
导读软件设计原则指导开发人员创建高效、可扩展和可维护的软件。遵循这些原则,开发人员可以编写更容易阅读、测试和扩展的代码,降低总体拥有成本,并使团队协作更加高效。以下是一些最基本的软件设计原则:1.关注点分离应用程序

软件设计原则指导开发人员创建高效、可扩展和可维护的软件。遵循这些原则,开发人员可以编写更容易阅读、测试和扩展的代码,降低总体拥有成本,并使团队协作更加高效。EgP28资讯网——每日最新资讯28at.com

EgP28资讯网——每日最新资讯28at.com

以下是一些最基本的软件设计原则:EgP28资讯网——每日最新资讯28at.com

1.关注点分离

应用程序应分为具有较少功能重叠的离散功能模块。减少交互点对于实现强内聚和低耦合至关重要。尽管每个功能模块内的封闭功能有所不同,但在不适当的边界处分离功能可能导致功能之间的过度耦合和复杂性。EgP28资讯网——每日最新资讯28at.com

2.面向对象编程原则

  • 封装(Encapsulation):将数据与操作这些数据的方法捆绑在一起。它限制了对对象某些组件的直接访问,防止数据被无意干扰和滥用。
  • 抽象(Abstraction):使用简单的类来表示复杂性。它隐藏了复杂的现实,仅暴露必要的部分。
  • 继承(Inheritance):允许一个类(子类)继承另一个类(父类)的属性和行为(方法)。
  • 多态性(Polymorphism):允许一个实体被视为一个通用类别,并能够以多种形式存在。例如,一个特定的类可以被视为其父类或其实现的接口之一。

3.SOLID 原则 — 设计原则指导开发人员创建可维护、可扩展和高效的面向对象软件系统。

  • 单一职责原则(Single Responsibility Principle,SRP):一个类/服务/API 应该只有一个改变的原因,这意味着它应该只有一个职责或功能。
  • 开闭原则(Open/Closed Principle,OCP):软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。这意味着你可以添加新功能而不更改现有代码。
  • 里氏替换原则(Liskov Substitution Principle,LSP):你应该能够使用任何子类替代父类,并期望它能正常工作。这意味着一个使用基类类型的程序在传递一个派生类(子类)类型时应该仍然能够正常工作,而无需知道它。
  • 接口隔离原则(Interface Segregation Principle,ISP):一个类不应该被迫实现它不使用的接口。这意味着应该为每个类创建特定的接口,而不是一个大而全的接口。
  • 依赖倒置原则(Dependency Inversion Principle,DIP):高层模块不应该依赖于低层模块。两者都应该依赖于抽象。抽象不应该依赖于细节。细节应该依赖于抽象。这意味着你应该依赖于抽象而不是具体实现。

4.不要重复自己

避免代码中的重复,这可能导致不一致和错误。重用代码而不是复制代码。然而,在某些情况下,复制是更好的选择。EgP28资讯网——每日最新资讯28at.com

5.保持简单

保持代码尽可能简单和直接。简单的代码更容易理解和维护,并且更不容易出错。EgP28资讯网——每日最新资讯28at.com

6.你不会需要它

避免通过仅在需要时添加功能来增加不必要的复杂性。在某些情况下,如果开发成本非常高或存在显著的设计失败,可能需要提前进行详细的设计和测试。如果你的应用需求不明确或预期设计会随着时间的推移而改变,不要过早进行过多的设计工作。EgP28资讯网——每日最新资讯28at.com

7.迪米特法则或最少知识原则

一个对象只应与其直接的朋友通信,不应了解其他对象的内部工作。EgP28资讯网——每日最新资讯28at.com

8.组合优于继承

优先使用对象组合而不是类继承,因为它更加灵活,有助于避免大型继承层次结构带来的问题。EgP28资讯网——每日最新资讯28at.com

9.最小惊讶原则或最小意外原则

建议系统的行为应尽可能不让用户感到惊讶或困惑(即它应该按大多数用户的预期行为)。例如,如果你有一个用户账户服务,更新用户数据应该由一个 UpdateUserData() 方法完成,而不应该是一个名为 RebuildUserData() 的方法。EgP28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-98870-0.html你应该知道的主要软件设计原则

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: ARIES,数据恢复算法,万变不离其宗...

下一篇: 基于 Python 和 HuggingFace Transformers 的目标检测

标签:
  • 热门焦点
  • Find N3入网:最高支持16+1TB

    OPPO将于近期登场的Find N3折叠屏目前已经正式入网,型号为PHN110。本次Find N3在外观方面相比前两代有很大的变化,不再是小号的横向折叠屏,而是跟别的厂商一样采用了较为常见的
  • SpringBoot中使用Cache提升接口性能详解

    环境:springboot2.3.12.RELEASE + JSR107 + Ehcache + JPASpring 框架从 3.1 开始,对 Spring 应用程序提供了透明式添加缓存的支持。和事务支持一样,抽象缓存允许一致地使用各
  • 一篇文章带你了解 CSS 属性选择器

    属性选择器对带有指定属性的 HTML 元素设置样式。可以为拥有指定属性的 HTML 元素设置样式,而不仅限于 class 和 id 属性。一、了解属性选择器CSS属性选择器提供了一种简单而
  • 本地生活这块肥肉,拼多多也想吃一口

    出品/壹览商业 作者/李彦编辑/木鱼拼多多也看上本地生活这块蛋糕了。近期,拼多多在App首页“充值中心”入口上线了本机生活界面。壹览商业发现,该界面目前主要
  • 中国家电海外掘金正当时|出海专题

    作者|吴南南编辑|胡展嘉运营|陈佳慧出品|零态LT(ID:LingTai_LT)2023年,出海市场战况空前,中国创业者在海外纷纷摩拳擦掌,以期能够把中国的商业模式、创业理念、战略打法输出海外,他们依
  • 8月见!小米MIX Fold 3获得3C认证:支持67W快充

    这段时间以来,包括三星、一加、荣耀等等有不少品牌旗下的最新折叠屏旗舰都得到了不少爆料,而小米新一代折叠屏旗舰——小米MIX Fold 3此前也屡屡被传
  • OPPO K11搭载高性能石墨散热系统:旗舰同款 性能凉爽释放

    日前OPPO官方宣布,将于7月25日14:30举办新品发布会,届时全新的OPPO K11将正式与大家见面,将主打旗舰影像,和同档位竞品相比,其最大的卖点就是将配备索尼
  • 苹果140W USB-C充电器:采用氮化镓技术

    据10 月 30 日 9to5 Mac 消息报道,当苹果推出新的 MacBook Pro 2021 时,该公司还推出了新的 140W USB-C 充电器,附赠在 MacBook Pro 16 英寸机型的盒子里,也支
  • 由于成本持续增加,笔记本产品价格预计将明显上涨

    根据知情人士透露,由于材料、物流等成本持续增加,笔记本产品价格预计将在2021年下半年有明显上涨。进入6月下旬以来,全球半导体芯片缺货情况加剧,显卡、处理器
Top