首页 > 其他分享 >设计模式一句话总结

设计模式一句话总结

时间:2024-01-30 18:22:21浏览次数:33  
标签:总结 功能 原则 一句 对象 模式 工厂 设计模式

1. 设计原则(SOLID原则

原则名字 原则描述
单一职责原则(S) 功能只有一个
开闭原则(O) 开放扩展,关闭修改
里氏替换原则(L) 子类需要实现父类功能以保持兼容性
接口隔离原则(I) 不用的函数或者功能不要出现
依赖倒置原则(D) 细节依赖于抽象,约定优先
迪米特法则 只和朋友说话
组合/聚合复用原则 组合优于继承

2. 设计模式

模式名字 模式描述
简单工厂模式 用一个接口包装不同对象的创建
抽象工厂 简单工厂的封装
工厂方法 获得随时创建对象的能力
生成器模式 分步骤创建复杂对象
原型模式 克隆现有对象
单例模式 全局只有一个
适配器模式 将对象适配
桥接模式 在对象之间搭建桥梁
组合模式 “部分-整体”的对象树
装饰器模式 动态添加小功能
外观模式 提供一个统一的接口来访问内部
享元模式 共享多个对象所共有的相同状态
代理模式 找个代理对象
责任链模式 沿着一条链传递
命令模式 将请求封装成对象
迭代器模式 定义遍历函数
中介者模式 通过中介对象进行通信和协作
备忘录模式 保存对象的状态
观察者模式 订阅模式
状态模式 不同状态下具有不同的功能
策略模式 根据不同情况选择不同算法
模板方法 事先约定好,做时再慢慢实现
访问者模式 将具体算法与作用对象分离

标签:总结,功能,原则,一句,对象,模式,工厂,设计模式
From: https://www.cnblogs.com/jiujiubashiyi/p/17997716

相关文章

  • 每日总结2024年1月30日
    今天完成了歌声转换的第一阶段验收。我们小组选择的服务外包杯课题是A13的歌声转化,我们计划实现两个方面的功能。能够选择人声,然后根据导入的歌曲,替换原声,生成新的歌曲,这是我们计划的基础目标。但是考虑到条件的局限性,我们很难让用户自行导入音色素材直接转化为需要的音色,目前计......
  • 设计模式相关介绍
    设计模式使用原则主要包括以下几点:单一职责原则:一个类只负责一项职责,即一个类应该只有一个职责,该职责由类的一个职责来定义。这样可以提高类的可维护性和可复用性。开闭原则:软件实体应当对扩展开放,对修改封闭。也就是说,软件的功能扩展应当通过增加新代码来实现,而不是通过修改已......
  • python获取表格数据总结
    获取表格内容:图片中首先import了两个模块,一个os一个openyxl,然后指定表格路径,打开表格。os:这里os在Python中,os.chdir()方法用于改变当前的工作目录。工作目录是指当前正在执行的脚本所在的目录。通过使用os.chdir()方法,我们可以在脚本执行过程中切换到不同的目录。openy......
  • csharp 发布订阅 设计模式
    event_learn\Program.csusingSystem;//定义一个发布者类,它有一个MyEvent事件publicclassPublisher{//声明一个事件,使用EventHandler委托类型publiceventEventHandlerMyEvent;//定义一个触发事件的方法protectedvirtualvoidOnMyEvent()......
  • Unity5.x shader打包AssetBundle总结
    unity5.x  shader打包AssetBundle总结最近比较忙,好久没有更新博客了,新项目切换到unity5.x后使用了新的打包机制,在打包shader的时候遇到了一些问题,这里来记录一下吧。 在上一个项目中,我们使用unity4.7,对于shader并没有进行依赖打包,而是由unity打包到了每个用到的AssetBundle......
  • 今日总结
    一、spark入门与安装1、spark概述1)了解Spark是一种快速、通用、可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPLab,2010年开源,2013年6月成为Apache孵化项目,2014年2月成为Apache顶级项目。目前,Spark生态系统已经发展成为一个包含多个子项目的集合,其中包含SparkSQL、Spark......
  • vue建项目要做的事(总结)
    1、建项:vuecreateweb2、常用依赖:npminstallvue-routernpminstalljquerynpminstallpinianpminstallaxiosnpminstallelement-plus3、一些依赖代码路由:https://www.cnblogs.com/twinkler/p/17941069中,第7点pinia:https://www.cnblogs.com/twinkler/p/17946430中,第......
  • 1月29日总结
    目录前言(一)MBR分区数据结构(1)MBR分区方式(2)MBL主引导程序代码(3)磁盘签名(4)DPT磁盘分区表(5)结束标志(6)扩展分区(7)MBR分区的局限性(二)GPT分区(1)与GPT相关的分区类型(2)GPT分区的数据结构(3)GPT分区的优势(三)格......
  • 1月28日总结
    在很多时候我们需要使用到消息队列,其中kafka是一个非常优秀的消息队列,在我们平时开发中也经常会用到,但是在开发环境中部署kafka是一个非常麻烦的事情在kafka官网上,有一个详细的部署文档,需要的小伙伴可以参考这个文档https://kafka.apache.org/quickstart,但是......
  • 李宏毅《机器学习》总结 - RNN & LSTM
    在slot-filling问题(如给一个句子,自己分析出时间、地点等)如果只连着不同的FC,那么会导致无法读出是arrive还是leave的情况,导致错误因此,需要NN来考虑到整个句子的信息,也就是需要有memory,这就是RNNRNN原理有了memory,就可以初步解决同一个信息由于句子不同导致的意......