首页 > 其他分享 >软件设计模式概述

软件设计模式概述

时间:2024-09-28 14:23:10浏览次数:7  
标签:依赖 原则 软件设计 复用 模式 对象 概述 模块 父类

概述

软件设计内容

  • 软件体系结构 — 宏观设计,模块
  • 软件设计模式 — 中间级别,类,接口,模块
  • 数据结构与算法 — 微观设计,方法

是什么

设计经验的总结

七个常用原则

单一职责原则

就一个类而言,应该仅有一个引起他变化的原因

为什么
当一个类职责过多,一个职责的变化可能影响其他职责的能力,这种耦合导致了脆弱的设计

开闭原则

软件实体(类,模块,函数) 可以扩展,不可修改
对扩展开放,对修改封闭

为什么
需求是不断变化的,不可能一开始就能写出完美的代码,这时候就需要在需求到来时,尽可能少的修改原来的代码,扩展新的功能

里氏替代原则

子类型必须能够替换掉他们的父类型
如果一个软件实体,使用的是一个父类,那么一定适用于其子类,且他察觉不到父类对象于子类对象的区别,也就是说,在软件里面,把父类都替换成子类,程序的行为没有改变

也就是说,子类继承了父类,便可以以父类的身份出现

依赖倒转原则

1.高层模块不应该依赖低层模块,两个都依赖抽象
2.抽象不应该依赖细节,细节应该依赖抽象
针对接口编程,不要对实现编程

接口隔离原则

客户端不应该依赖那些他不需要的接口

合成复用原则

优先使用对象组合,而不是通过继承来达到复用的目的
在一个新的对象里面通过关联关系(包括组合,与聚合关系)来使用一些已有的对象,使之成为新对象的一部分,新对象通过委派调用已有对象的方法来到到复用功能的目的

迪米特法则

如果两个类不直接通信,那么这两个类就不应当发生直接的相互作用,如果其中一个类需要调用另一个类的摸一个方法的话,可以通过第三者来转发这个调用

为什么

使得软件可维护,易扩展易复用

怎么办

一些场景设计模式
请看下期

标签:依赖,原则,软件设计,复用,模式,对象,概述,模块,父类
From: https://blog.csdn.net/qq_73270720/article/details/142612911

相关文章

  • C++设计模式
    C++设计模式提供了一些常见的问题和解决方案,帮助我们写出更清晰、更高效、更容易维护的代码。1.单例模式:就像整形诊所里有一个特别的规定,全世界只能有一个人拥有某款独一无二的鼻子,其他人都不能复制。(确保一个类只有一个实例,并提供一个全局访问点。)classSingleton{priva......
  • 结构型设计模式详解与对比:优化你的系统设计
    结构型设计模式(StructuralDesignPatterns)主要关注类和对象的组合,以形成更大的结构。它们通过识别实体之间的关系,帮助设计师确保系统的各个部分能够协同工作。以下是几种常见的结构型设计模式及其详细介绍和对比:一,代理模式(ProxyPattern)用途:为另一个对象提供一个替身......
  • 商场促销——策略模式
    文章目录商场促销——策略模式商场收银软件增加打折简单工厂实现策略模式策略模式实现策略与简单工厂结合策略模式解析商场促销——策略模式商场收银软件时间:2月27日22点地点:大鸟房间人物:小菜、大鸟“小菜,给你出个作业,做一个商场收银软件,营业员根据客户所......
  • 如果再回到从前——备忘录模式
    文章目录如果再回到从前——备忘录模式如果再给我一次机会……游戏存进度备忘录模式备忘录模式基本代码游戏进度备忘如果再回到从前——备忘录模式如果再给我一次机会……时间:5月6日18点地点:小菜、大鸟住所的客厅人物:小菜、大鸟"小菜,今天上午看NBA了吗?"大......
  • 开源链动2+1模式AI智能名片小程序源码:放大特色,构建独特竞争力
    摘要:本文探讨在当今社会背景下,开源链动2+1模式AI智能名片小程序源码如何通过坚持与众不同来构建独特竞争力。在信息传播便捷但个体易同质化的时代,拥有特色是脱颖而出的关键,而这种模式下的小程序源码具有独特的发展潜力。一、引言当今社会,一方面互联网使信息传播便捷高效,另一......
  • 多线程下单例模式延迟初始化的实现
    多线程下单例模式延迟初始化的实现前言synchronized修饰方法双重检查锁定双重检查锁定的问题基于volatile的双重锁定方案类初始化总结前言在程序开发中,存在一些开销较高的资源,例如数据库连接等,我们使用单例模式保证其唯一并且进行延迟初始化,只有当使用的时候才进行......
  • keepalived+nginx实现高可用的案例详解(主主模式)
    文章目录前言keepalived主备模式和主主模式有什么区别1.主备模式(Master-BackupMode)2.主主模式(Active-ActiveMode或DualMasterMode)主备模式vs主主模式的区别总结:环境案例实现具体步骤ngx1ngx2验证前言keepalived主备模式和主主模式有什么区别Keepali......
  • RabbitMQ五种工作模式的代码具体实现(代码简单易懂)(一)
    一、简单队列模式:直接把消息发送给队列,且队列只有一个消费者。使用的是Rabbitmq默认的交换机。生产者部分:<!--amqp依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</art......
  • 智能工厂的软件设计 创新型原始制造商(“创新工厂“)的Creator原型(统一行为理论)之4
    Q30、再说一次。智能工厂的软件设计"Program"语言中用首字母大写的方法名表示一个的占位符变量(相当于普通程序中元编码标识,在这里代表用符号学标记sign唯一标识的一个Event签名)。最初为抽象类Event设计了三个抽象接口方法(创新的Creator(),建树的Builder()和构链Constructor......
  • 农村生活污水治理推荐技术模式
    前 言为扎实推进我国农村生活污水治理,改善人居环境,建设宜居宜业和美乡村,遴选了一批较为成熟的农村生活污水治理技术模式。主要遵循以下原则:生态循环、利用优先。牢固树立绿色发展理念,结合农田灌溉回用、生态保护修复、环境景观建设等,鼓励农村黑水、灰水分别处理回用,鼓励污......