首页 > 其他分享 >设计模式相关

设计模式相关

时间:2024-03-27 09:58:58浏览次数:21  
标签:对象 Pattern 代码 模式 创建 相关 设计模式

设计模式的目标

设计模式是一种解决问题的思路,提供一种通用的、可重用的解决方案。
设计模式的主要目标包括:

  • 提高代码的可重用性: 设计模式可以使开发人员将经过验证的设计思想和方法应用于新的问题,从而提高代码的可重用性。

  • 提高代码的可维护性: 设计模式能够提供一种清晰的结构,使得代码更易于理解和维护。

  • 降低代码的耦合性: 设计模式通过定义良好的接口和抽象类,有助于降低代码组件之间的依赖关系,减少耦合性。

  • 提高代码的可扩展性: 设计模式通过强调松散耦合,使得系统更容易扩展和修改。

设计模式的原则

设计模式的六大原则如下:

  1. 单一职责原则:一个类应该只有一个引起变化的原因。定义清楚的边界,如果一个类承担了过多的职责,一旦发生变化可能会影响其他功能,因此需要将职责进行分离。
  2. 开放封闭原则:软件实体应当对扩展开放,对修改封闭。这意味着一个实体允许在不修改原有代码的情况下进行扩展。
  3. 里氏替换原则:这个原则表达了子类型应当是其基类型的可替换的。也就是说,程序中的对象应能够被其子类所替换,而不改变程序的正确性。
  4. 依赖倒转原则:高层模块不应该依赖于低层模块,两者都应该依赖于抽象;抽象不应该依赖于细节,细节应该依赖于抽象。这表明在设计中要依赖于抽象而不是具体的实现。
  5. 接口隔离原则:客户端不应该强制依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上。
  6. 迪米特法则:又叫“最少知道法则”,一个对象应当尽可能少的了解另外的对象。这样降低了类之间的耦合度,增强了代码的可维护性和可复用性。

常用设计模式

设计模式的三大类型:

  • 创建型模式:主要解决对象的创建问题,,它们提供了一种在创建对象的同时隐藏创建逻辑的方法,使得程序更加灵活,能够根据不同情况创建不同的对象。
    • 单例模式(Singleton Pattern):确保一个类只有一个实例,并提供一个全局访问点。
    • 工厂模式(Factory Pattern):定义一个创建对象的接口,但由子类决定实例化哪个类。
    • 抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
    • 建造者模式(Builder Pattern):将一个复杂对象的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。
    • 原型模式(Prototype Pattern):通过复制现有对象来创建新对象,而不是通过实例化。
  • 结构型模式:关注如何组合类或对象,以形成更大的结构。它们通过组合简化了系统的复杂性,使得系统更易于理解和维护。
    • 代理模式:用于为其他对象提供一种代理以控制对这个对象的访问
  • 行为型模式:专注于对象之间的通信和协作,它们描述了对象之间如何相互协作完成单个对象无法单独完成的任务,以及如何分配职责和算法。
    • 观察者模式(Observer Pattern):定义对象间的一对多依赖,当一个对象状态改变时,所有依赖它的对象都得到通知并被自动更新。
    • 责任链模式(Chain of Responsibility Pattern):使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系。
    • 策略模式:定义一系列算法,将每个算法封装起来,并使它们可以互换。

标签:对象,Pattern,代码,模式,创建,相关,设计模式
From: https://blog.csdn.net/a3562323/article/details/136850226

相关文章

  • 1.设计模式与面向对象
    目录1.设计模式2.设计模式的分类3.面向对象4.接口1.设计模式       设计模式是对软件设计中普遍存在或反复出向的各种问题所提出的解决方案。每一个设计模式系统地被命名、解释和评价了面向对象系统中一个重要和重复出现的设计。2.设计模式的分类创建型模式:工厂......
  • 笔记软件Typora的安装与相关事项
    笔记软件Typora的安装与相关事项【一】Typora软件介绍Typora是一款简洁而强大的Markdown编辑器。它提供实时预览功能,让用户可以即时查看文档的渲染效果。Typora采用所见即所得的编辑模式,没有繁杂的标记符号,用户可以专注于写作而不必分心处理格式。此外,Typora还支持数学公式、表......
  • 计算两列的相关性
    计算两列的相关性使用Pandas中的corr()函数计算DataFrame中特定的两列之间相关系数。defcorr_analys(input_file_path,col_1,col_2,output_pic_path,sheet_name='Sheet1'):'''########################################计算两列之间的相关系数(Pearson相关......
  • SSL证书相关
    在握手过程中,网站会向浏览器发送SSL证书,SSL证书和我们日常用的身份证类似,是一个支持HTTPS网站的身份证明,SSL证书里面包含了网站的域名,证书有效期,证书的颁发机构以及用于加密传输密码的公钥等信息,由于公钥加密的密码只能被在申请证书时生成的私钥解密,因此浏览器在生成密码之前需要......
  • 腾讯云相关
      1、IP来源检查一个内网地址,总是请求账号服务,elk里面的统计数据,而且比较有规律{"ori_req":[]},{"url":"\/","ip":"10.x.x.71","http_method":"GET","server":"accounx.x.com","referrer":null......
  • [AI][osg]关于osg的options的设计模式
    Options说明OSG(OpenSceneGraph)是一个高性能的开源3D图形工具包,用于可视化仿真、游戏、虚拟现实、科学可视化等领域。它提供了一套丰富的API和工具,帮助开发者创建复杂的3D场景和应用程序。在OSG中,Options机制用于控制场景图读取过程中的各种参数和行为。通过Options,开发者可以指......
  • 光学镜头相关术语-英文翻译1
    光学镜头制造行业PM一枚,对接国外客户,日常分享英文术语。abaxialsphericalaberration轴外球差Abbeimagingtheory阿贝成像理论Aberrationcurve像差曲线Aberrationoflight光行差absolutecoordinatesystem绝对坐标系统absolutemagnitude绝对量absoluterefractiveinde......
  • C# 线程相关一点杂记
    相信很多人在实际开发中是不愿使用到多线程的,因为一旦引入多线程这个概念,对应功能就需要加很多关于线程的考虑措施,如锁,任务回调顺序等等。有事加了一些对应的措施,还是感觉程序出现偶发的不同问题,这里主要记录一下多线程任务时需要注意的一些毫秒相关的事情。for(inti=0......
  • Spring中用到的一些设计模式
    单例模式:bean默认就是单例原型模式:指定作用域为prototype工厂模式:BeanFactory模板方法:postProcessBeanFactory,onRefresh,initPropertyValue策略模式:xmlBeanDefinitionReader,PropertiesBeanDefinitionReader观察者模式:listener,event,multicast适配器模式:Adapter......
  • BMS均衡的相关原理及解释
    1为什么要做均衡?由于电池使用工艺和材料的本身有差异,及电池实际使用过程中所处的温度、湿度等环境的不同,电池包内部的单体电池存在SOC差异,这个SOC的差异从直观上的体现就是电池的电压不同。另外一个重要原因是由于电池自身由于极板活性物质脱落,上下极板之间的电位差,导致电......