首页 > 其他分享 >六大设计原则

六大设计原则

时间:2023-01-20 22:22:41浏览次数:35  
标签:六大 原则 子类 接口 Principle 设计 父类 可维护性

六大设计原则SOLID

单一职责原则(Single Responsibility Principle)

单一职责原则:应该有且仅有一个原因引起类的变更。

单一职责指的是,一个类,一个函数(方法)只负责一个单一的职责。

  • 降低复杂度提高代码的可读性
  • 提高可维护性

开闭原则(Open Closed Principle)

类、模块、函数,可以去扩展,但不要去修改。如果要修改代码,尽量用继承或组合的方式来扩展类的功能。

开闭原则是指一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。也就是说一个软件实体应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化。

  • 提高复用性
  • 提高可维护性

里氏替换原则(Liskov Substitution Principle)

里氏替换原则:所有引用基类的地方必须透明的使用其子类的对象。

该原则是为了解决继承extends的侵入性、灵活性和耦合度。历史替换原则通俗的说就是父类能出现的地方,子类就可以出现,而且替换为子类也不会产生任何错误或异常。增加代码的健壮性和兼容性。

  • 子类必须完全实现父类的方法
  • 子类可以有自己的个性
  • 覆盖或实现父类的方法时输入参数可以被放大(函数的重载)
  • 覆写或实现父类的方法时输出结果可以被缩小

迪米特法则(Law of Demeter)

一个对象应该对其他对象有最少的了解

迪米特法则又叫最少知道原则,即一个类对自己依赖的类知道的越少越好。也就是说,对于被依赖的类不管多么复杂,都尽量将逻辑封装在类的内部。对外除了提供的 public 方法,不对外泄露任何信息。

  • 类间解耦,肉耦合后提高类的复用率

接口隔离原则(Interface Segregation Principle)

接口隔离原则:不要对外暴露没有实际意义的接口。

  • 接口要尽量小(根据接口隔离原则拆分接口时,首先必须满足单一职责原则。)
  • 接口要高内聚(高内聚就是提高接口、类、模块的处理能力,减少对外的交互。)
  • 定制服务(采用定制服务就必然有一个要求:只提供访问者需要的方法)
  • 接口设计是有限度的(接口的设计粒度越小,系统越灵活,这是不争的事实。但是,灵活的同时也带来了结构的复杂化,开发难度增加,可维护性降低,)

依赖倒置原则(Dependence Inversion Principle)

依赖倒置原则:高层模块不应该依赖于低层模块,而应该依赖于抽象。抽象不应依赖于细节,细节应依赖于抽象。

  • 依赖倒置原则可以减少类间的耦合性,提高系统的稳定性,降低并行开发(多人)引起的风险,提高代码的可读性和可维护性。

标签:六大,原则,子类,接口,Principle,设计,父类,可维护性
From: https://www.cnblogs.com/wanglei1900/p/17063334.html

相关文章

  • 【设计模式】设计模式六大原则
    开闭原则对扩展开放,对修改关闭。使用抽象类,接口等构建抽象层,通过实现接口(继承抽象类)的方式构建具体实现。当系统修改时,无需对抽象层代码修改,只需编写新的具体实现类达到......
  • form-editor 一种基于虚拟DOM的动态表单设计器
    项目地址github: https://github.com/xjf7711/form-editor项目环境1、全局和本地安装TypeScript2、初始化、安装webpack、webpack-cli、webpack-dev-server、webpack-......
  • Java/JS/Python/Go语言设计模式大全【精品源码】
    DesignPattern23种经典设计模式源码详解经典设计模式源码详解,用不同语言来实现,包括Java/JS/Python/TypeScript/Go等。结合实际场景,充分注释说明,每一行代码都经过检验,确......
  • 308. 最廉价的回文串 Cheapest Palindrome(挑战程序设计竞赛)
    地址https://www.papamelon.com/problem/308给定一个长度为m(m≤2000)的小写字母字符串,在给定组成该字符串的n(n≤26)个字符的添加和删除费用,求使原字符串变为......
  • 微机原理与系统设计笔记1 | 绪论与数制表示
    打算整理汇编语言与接口微机这方面的学习记录。参考资料西电《微机原理与系统设计》周佳社西交《微机原理与接口技术》课本《汇编语言与接口技术》王让定小甲鱼《......
  • 如何理解这6种常见设计模式?
     导读:设计模式能够帮助我们优化代码结构,让代码更优雅灵活。有哪些常见的设计模式?如何合理运用?本文分享作者对工厂模式、单例模式、装饰模式、策略模......
  • 数据结构课程设计[2023-01-19]
    数据结构课程设计[2023-01-19]数据结构课程设计一、课程设计要求实现指定的题目(学号最后两位%4+1),并撰写课程设计报告。独立完成,功能不完备也没关系,只要是自己做的使......
  • 高端餐饮空间规划设计
    开新店前最重要的一步是什么?a:品牌定位b:文化特色c:空间呈现​​餐厅空间设计​​是品牌文化的首要载体、是品牌形象的落地环节,是消费者与品牌互动的主要场所,更是餐厅盈......
  • 基于WebSocket的实时消息传递设计
    目录概述整体架构设计流程设计程序设计WebSocketServer概述新增pom新增配置类创建websocket端点WebSocketClient概述安装WebSocketSharp初始化client创建连接接口设计新增......
  • 线程安全单例设计模式
    一、什么是单例设计模式中的线程安全?首先,创建一个单例类:publicsealedclassGuidService{privatestaticintcounter=0;privatestaticGuidService?_gu......