当前位置: 首页 > news >正文

面向对象设计原则和设计模式分类

面向对象设计六大原则SOLID

  • 单一职责原则(Single Responsibility Principle)
    就一个类而言,应该仅有一个引起它变化的原因。
  • 开闭原则(Open Close Principle)
    软件中的对象(类、模块、函数等)应该对于扩展是开放的,对于修改是封闭的。当软件需要变化时,我们应该尽量通过扩展的方式来实现变化,而不是通过修改已有的代码来实现。
  • 里氏替换原则(Liskov Substitution Principle)
    所有引用基类的地方必须能透明地使用其子类的对象。
  • 接口隔离原则(Interface Segregation Principle)
    客户端不应该依赖它不需要的接口,另一种定义是:类间的依赖关系应该建立在最小的接口上。
  • 依赖倒置原则(Dependence Inversion Principle)
    模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的。
  • 迪米特原则(Law of Demeter),也称为最小知识原则(Least Knowledge Principle)
    一个对象应该对其他对象有最少的了解。

设计模式分类

设计模式依据其目的可分为创建型结构型行为型三种。

1、 创建型设计模式(5个)

  • 工厂模式(Factory Method)
  • 抽象工厂模式(Abstract Factory)
  • 单例模式(Singleton)
  • 原型模式(Prototype)
  • 构建者模式(Builder)

2、结构型设计模式(7个)

  • 组合模式(Composite)
  • 享元模式(Flyweight)
  • 适配器模式(Adapter)
  • 代理模式(Proxy)
  • 桥接模式(Bridge)
  • 装饰模式(Decorator)
  • 外观模式(Facade)

3、行为型设计模式(11个)

  • 命令模式(Command)
  • 状态模式(State)
  • 责任链模式(Chain of Responsibility)
  • 中介者模式(Mediator)
  • 访问者模式(Visitor)
  • 模版模式(Template Method)
  • 解释器模式(Interpreter)
  • 迭代器模式(Iterator)
  • 备忘录模式(Memento)
  • 观察者模式(Observer)
  • 策略模式(Strategy)
http://www.lryc.cn/news/602953.html

相关文章:

  • 开源AI智能体-JoyAgent集成Deepseek
  • C++模板元编程从入门到精通
  • [论文阅读] 人工智能 | 机器学习工作流的“救星”:数据虚拟化服务如何解决数据管理难题?
  • [机缘参悟-236]:通过AI人工神经网络理解人的思维特征:惯性思维、路径依赖、适应性、不同场合不同言行、经验、概率、常规与特殊情形(正态分布)、环境适应性
  • 5 分钟上手 Firecrawl
  • Java项目:基于SSM框架实现的社区团购管理系统【ssm+B/S架构+源码+数据库+毕业论文+答辩PPT+远程部署】
  • js的学习1
  • 如何理解有符号数在计算机中用​​补码​​存储
  • 阿里给AI To C战略戴上眼镜
  • 案例开发 - 日程管理 - 第三期
  • Android Handler 完全指南
  • 【QT搭建opencv环境】
  • 商城系统-项目测试
  • redis未授权getshell四种方式
  • Ubuntu24安装MariaDB/MySQL后不知道root密码如何解决
  • 基于STM32设计的智慧果园云监测系统_256
  • 基于Uniapp及Spring Boot的奢侈品二手交易平台的设计与实现/基于微信小程序的二手交易系统
  • linux安装zsh,oh-my-zsh,配置zsh主题及插件的方法
  • 机器学习基础-numpy
  • OpenMP 并行编程核心机制详解:从变量作用域到同步优化
  • SwinTransformer改进(14):集成MLCA注意力机制的Swin Transformer模型
  • Linux DNS解析2 -- 网关DNS代理的作用
  • 如何实现安卓端与苹果端互通的多种方案
  • unisS5800XP-G交换机配置命令之端口篇
  • 【安卓笔记】OOM与内存优化
  • React Router v6 核心组件
  • Linux进程概念(五)进程地址空间
  • 吃透 lambda 表达式(匿名函数)
  • 关闭 UniGetUI 自动 Pip 更新,有效避免 Anaconda 环境冲突教程
  • 3.DRF视图和路由