首页 > 其他分享 >设计模式分类和软件设计原则

设计模式分类和软件设计原则

时间:2024-10-13 15:48:21浏览次数:6  
标签:设计模式 原则 软件设计 分类 对象 依赖 父类

1.设计模式分类

类别名称 描述 设计模式
创建型模式 怎样创建对象,将对象的创建与使用分离 单例、原型、工厂方法、抽象工厂、建造者
结构型模式 将类或对象按某种布局组成更大的结构 代理、适配器、桥接、装饰、外观、亨元、组合
行为型模式 类或对象之间怎样相互协作共同完成单个对象无法单独完成的任务,以及怎样分配职责 模板方法、策略、命令、职责链、状态、观察者、中介者、迭代器、访问者、备忘录、解释器

2.软件设计原则

  • 开闭原则

    • 对扩展开放,对修改关闭。对程序进行拓展时,不修改原有代码,提高扩展性,易于维护和升级。
  • 里氏代换原则

    • 子类可以扩展父类的功能,但不能改变父类原有的功能
  • 依赖倒转原则

    • 高层模块不应该依赖低层模块,两者都应该依赖其抽象。
  • 接口隔离原则

    • 客户端不应该被迫依赖于它不使用的方法,一个类对另一个类的依赖应该建立在最小的接口之上。
  • 迪米特法则(最少知识原则)

    • 如果两个实体无须直接通信,就不应当发生直接的相互调用,可以通过第三方转发调用。降低类之间的耦合度。
  • 合成复用原则

    • 先使用组合或者聚合等关系实现,其次使用继承关系实现

标签:设计模式,原则,软件设计,分类,对象,依赖,父类
From: https://www.cnblogs.com/tozyj/p/18462462

相关文章

  • 单片机毕业设计——基于语音识别的分类垃圾桶系统设计 要怎么设计与实现呢(全程可免费
    基于语音识别的分类垃圾桶系统设计是一个结合了物联网、人工智能和机械控制的创新项目。以下是根据功能需求分步骤的具体实现方案:一、系统规划与设计需求分析:明确系统需要实现的功能,包括垃圾分类、语音识别、舵机控制、超声波检测和显示提醒。硬件选择:选择合适的语音识别模块......
  • 设计模式(二)
    第一类模式:创建者模式创建型模式的主要关注点是“怎么样创建对象?”,它的主要关注点是“将对象的创建与使用分离”。这样可以降低系统的耦合度,使用者不需要关注对象的创建细节。创建型模式分为:单例模式工厂方法模式抽象工程模式原型模式建造者......
  • 机器学习(MachineLearning)(7)——分类_朴素贝叶斯
    机器学习(MachineLearning)(1)——机器学习概述机器学习(MachineLearning)(2)——线性回归机器学习(MachineLearning)(3)——决策树回归机器学习(MachineLearning)(4)---------分类_逻辑回归机器学习(MachineLearning)(5)——分类_决策树机器学习(MachineLearning)(6)——分类_支持向量机一......
  • 利用pytorch的datasets在本地读取MNIST数据集进行分类
    MNIST数据集下载地址:tensorflow-tutorial-samples/mnist/data_setatmaster·geektutu/tensorflow-tutorial-samples·GitHub数据集存放和dataset的参数设置:完整的MNIST分类代码:importtorchimporttorch.nnasnnimporttorch.optimasoptimfromtorchvisionimpor......
  • C#设计模式详解:从简单工厂到抽象工厂
    在C#中,简单工厂(SimpleFactory)和抽象工厂(AbstractFactory)是两种常用的设计模式,它们都属于创建型设计模式,用于创建对象而无需在代码中显式指定具体的类。尽管它们的目的相似,但在复杂性和灵活性方面存在显著差异。简单工厂(SimpleFactory)简单工厂模式是一种不属于GoF(四人帮......
  • R语言使用randomForest包中的randomForest函数构建随机森林模型、使用importance函数
    R语言使用randomForest包中的randomForest函数构建随机森林模型、使用importance函数查看特征重要度、使用table函数计算混淆矩阵评估分类模型性能、包外错误估计OOB(out-of-bagerrorestimate)目录R语言使用randomForest包中的randomForest函数构建随机森林模型(Randomfores......
  • 表示和分类
    显然矩阵乘积的行列式是各自行列式的乘积,因此行列式是矩阵乘法半群的表示。表示将不同的对象联系起来。行列式将矩阵和数字联系起来。数字分为0和非0,对应(双边对应)着矩阵分为不可逆和可逆。但是这个表示一方面不是双射,另一方面不是代数表示(和的行列式显然不一定等于行列式的和),所携......
  • 设计模式11
    packagecom.example.principle.ocp;publicclassApiInfo{privateStringapi;privatelongrequestCount;privatelongerrorCount;privatelongdurationOfSeconds;//privatelongtimeoutCount;publicStringgetApi(){r......
  • 「软件设计哲学」于延保代码改造中的实践
    作者:京东保险王奕龙本文主要给大家分享软件设计中的两个理念,为什么我称软件设计是“理念”而不是“方法”或“原则”呢?这个想法主要受《Aphilosophyofsoftwaredesign》的影响,它将软件设计称为“哲学”,而哲学本身没有严格的定论,同样地,我觉得软件设计是每个开发者的理念,相同功......
  • 设计模式详解(命令模式)
    命令模式(CommandPattern)是一种行为型设计模式,它将请求封装为一个对象,从而使得请求的发送者和接收者解耦。一、命令模式的核心思想命令模式的核心思想是将“请求”封装成为一个对象,从而使得我们可以用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的......