软件设计模式

软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。

三个类别,23种方法

  • 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
  • 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
  • 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

详细方法

  • 创建型
方法 内容
工厂方法 定义一个用于创建对象的接口,让子类决定实例化哪一个类,Factory Method使一个类的实例化延迟到了子类。
单例模式 保证一个类只有一个实例,并提供一个访问它的全局访问点,限制了创建类的实例数量
抽象工厂 提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们的具体类。
建造模式 将一个复杂对象的构建与他的表示相分离,使得同样的构建过程可以创建不同的表示
原型模式 用原型实例指定创建对象的种类,并且通过拷贝这些原型来创建新的对象。
  • 结构型
方法 内容
组合模式 将对象组合成树形结构以表示部分整体的关系,Composite使得用户对单个对象和组合对象的使用具有一致性。
外观模式 为子系统中的一组接口提供一致的界面,facade提供了一高层接口,这个接口使得子系统更容易使用。
代理模式 为其他对象提供一种代理以控制对这个对象的访问。
适配器模式 将一类的接口转换成客户希望的另外一个接口,此模式使得原本由于接口不兼容而不能一起工作那些类可以一起工作。使不兼容的接口匹配
装饰模式 动态地给一个对象增加一些额外的职责,就增加的功能来说,Decorator模式相比生成子类更加灵活。
桥模式 将抽象部分与它的实现部分相分离,使他们可以独立的变化。
享元模式 使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于当大量物件只是重复因而导致无法令人接受的使用大量内存。
  • 行为型
方法 内容
迭代器模式 提供一个方法顺序访问一个聚合对象的各个元素,而又不需要暴露该对象的内部表示。
观察者模式 (有时又被称为发布/订阅模式)定义对象间一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知自动更新ex:监听一个事件状态,让它在状态发生改变时主动发出通知
模板方法 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,TemplateMethod使得子类可以不改变一个算法的结构即可以重定义该算法得某些特定步骤。
命令模式 将一个请求封装为一个对象,从而使你可以用不同的请求对客户进行参数化,对请求排队和记录请求日志,以及支持可撤销的操作。
状态模式 允许对象在其内部状态改变时改变他的行为。对象看起来似乎改变了他的类。
策略模式 定义一系列的算法,把他们一个个封装起来,并使他们可以互相替换,本模式使得算法可以独立于使用它们的客户。
职责链模式 使多个对象都有机会处理请求,从而避免请求的送发者和接收者之间的耦合关系
中介者模式 用一个中介对象封装一些列的对象交互。
访问者模式 表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素类的前提下定义作用于这个元素的新操作。
解释器模式 给定一个语言,定义他的文法的一个表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。
备忘录模式 在不破坏对象的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。

参考资料来源:Bruce于

软件设计模式:三个类别,23种方法相关推荐

  1. 设计模式(二)23种设计模式

    设计模式(二)23种设计模式 文章目录 设计模式(二)23种设计模式 组件协作模式 策略模式 观察者模式 单一职责模式 Decorator模式 Bridge模式 对象创建模式 Factory Meth ...

  2. (转):GOF设计模式趣解(23种设计模式)

    GOF设计模式趣解(23种设计模式) 创建型模式 1.FACTORY--追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务 ...

  3. java设计模式知识总结(23种)

    一.设计模式的概述 模式是在特定环境下人们解决某类重复出现问题的一套成功或有效的解决方案. 软件模式:在一定条件下的软件开发问题及其解法. 目的:为了可重用代码.让代码更容易被他人理解.提高代码可靠性 ...

  4. 【设计模式】常见的23种设计模式

    设计模式 文章目录 设计模式 七大原则: 1.单一职责原则 2.接口隔离原则 3. 依赖倒转原则 4.里氏替换原则 UML类图: 1.各种符号规定 ​ UML 本身是一套符号的规定,就像数学符号和化学 ...

  5. GOF设计模式趣解(23种设计模式)

    创建型模式                     1.FACTORY-追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务 ...

  6. 设计模式简介及GoF 23种模式的分类(两种分类方式)

    一.设计模式(Design Patterns)简介: 设计模式代表了最佳实践,通常被有经验的面向对象的开发人员使用. 设计模式是程序猿在软件开发过程中面临的一般问题的解决方案. 设计模式是一套反复使用 ...

  7. DZone每日必读-news: 指导软件团队取得成功的 4 种方法

    目录 1. 专注于提问 2. 设计个人学习计划 3. 提供伸展作业和指导机会 4. 促进项目合作和目标设定 结论 很少有人靠自己进步和发展自己的事业.在此过程中,他们得到了经验丰富的同事.导师和领导者 ...

  8. 软件项目规模估算的3种方法---Loc估算法、FP估算法、PERT估算法

    软件项目规模估算的方法 Loc估算法 FP估算法 PERT估算法   软件规模是软件工作量的主要影响因素,常用的软件规模度量方法有三种,分别是Loc估算法.FP估算法.PERT估算法. Loc估算法 ...

  9. 空调噪音测试软件,检测空调噪音的四种方法

    原标题:检测空调噪音的四种方法 空调噪音是空调系统工作时发出的噪音,包括风机产生的逸入房间中的噪音,和风管末端处的再生噪音,风机产生的噪音,是叶片旋转时撞击周围空气而产生的有调噪音和有涡流引起的无规噪 ...

最新文章

  1. git获取指定release版本代码
  2. 使用maven整合SSH框架详细步骤
  3. Digimeter 软件
  4. 张宏江:工程水平决定创新能力(转载于百度百科)
  5. OpenShift 4- 用ArgoCD安装ArgoCD环境
  6. 设计模式之创建型(1)-简单工厂
  7. 对于tf.nn.sparse_softmax_cross_entropy_with_logits(logits=y,labels=tf.argmax(y_,1))的研究
  8. 离散数学课后习题答案 左孝凌版
  9. 【仿美团点餐App】—— 首页(二)
  10. Verifying archive integrity... Error in check sums 1981929512 2439459451
  11. 在等待缓存锁:无法获得锁 /var/lib/dpkg/lock-frontend。锁正由进程 7939(unattended-upgr)持有... 32秒
  12. 支付宝AR扫福背后的故事
  13. webpack (七) -配置sourceMap——为了更容易地追踪代码错误和警告
  14. java习题小分享【关于statis你知道多少】
  15. c语言 sleep_编程代码:用C语言来实现下雪效果,这个冬天,雪花很美
  16. Pytorch环境下微调BERT以及调参教程
  17. 论坛发贴与跟贴的技巧
  18. openstack一键部署
  19. winimage 及dos使用
  20. [转载] win10电脑如何查看wifi密码

热门文章

  1. 四大名著开篇诗词:句句都是真理,道尽人生玄机
  2. java流程图表示输入 输出_Java IO基础总结
  3. 著名数学家谁提出了储存程序计算机理论,《计算机的组成》1945年,美籍着名数学家冯·诺依曼提出了存储程序的设计.DOC...
  4. InSAR有什么前景
  5. css背景图片全屏显示加居中显示
  6. Unable to import maven project: See logs for details错误解决方法
  7. 戴尔转身从裁员开始 耗资670亿美元买下EMC
  8. DMHS DM6到DM7单向同步
  9. php高级工程师面试题
  10. dbvisualizer 查表结构_数据库表结构查询SQL