概述

  • 知道OO基础,并不足以让你设计出良好的OO系统。
  • 良好的OO设计必须具备可复用、可扩充、可维护三个特性。
  • 模式可以让我们建造出具有良好OO设计质量的系统。
  • 模式被认为是历经验证的OO设计经验。
  • 模式不是代码,而是针对设计问题的通用解决方案。你可把它们应用到特定的应用中。
  • 模式不是被发明,而是被发现。
  • 大多数的模式和原则,都着眼于软件变化的主题。
  • 大多数的模式都允许系统局部改变独立于其他部分。
  • 我们常把系统中会变化的部分抽出来封装。

设计原则

  • 封装变化
  • 多用组合,少用继承
  • 针对接口编程,不针对实现编程
  • 为交互对象之间的松耦合设计而努力
  • 类应该对扩展开放,对修改关闭
  • 依赖抽象,不要依赖具体类
  • 只和朋友交谈
  • 别找我,我会找你
  • 类应该只有一个改变的理由

模式分类

设计模式根据目的可以分为三大类,分别是创建型设计模式行为型设计模式以及结构型设计模式。 创建型模式涉及到将对象实例化,这类模式都提供一个方法,将客户从所需要实例化的对象中解藕。 行为型模式涉及到类和对象如何交互及分配职责。 结构型模式可以让你把类或对象组合到更大的结构中。

创建型设计模式【5种】

  • 单例模式(Singleton)
  • 构建模式(Builder)
  • 原型模式(Prototype)
  • 抽象工厂模式(Abstract Factory)
  • 工厂方法模式(Factory Method)

行为设计模式【11种】

  • 策略模式(Strategy)
  • 状态模式(State)
  • 责任链模式(Chain of Responsibility)
  • 解释器模式(Interpreter)
  • 命令模式(Command)
  • 观察者模式(Observer)
  • 备忘录模式(Memento)
  • 迭代器模式(Iterator)
  • 模板方法模式(Template Method)
  • 访问者模式(Visitor)
  • 中介者模式(Mediator)

结构型设计模式【7种】

  • 装饰者模式(Decorator)
  • 代理模式(Proxy)
  • 组合模式(Composite)
  • 桥连接模式(Bridge)
  • 适配器模式(Adapter)
  • 蝇量模式(Flyweight)
  • 外观模式(Facade)

23种设计模式(0)——概述相关推荐

  1. 23种设计模式汇总概述

    设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于 ...

  2. 23种设计模式——软件设计模式概述

    文章目录 23种设计模式--软件设计模式概述 1.软件设计模式的产生背景 2.软件设计模式的概念与意义 2.1. 软件设计模式的概念 2.2. 学习设计模式的意义 3.软件设计模式的基本要素 4.23 ...

  3. java 23种设计模式详解

    1. 软件设计模式意义 文章链接:http://c.biancheng.net/design_pattern/     设计模式的本质是对面向对象设计原则运用,是对类的封装.继承和多态以及类的关联关系 ...

  4. Python之23种设计模式

    目录篇: python相关目录篇 点击跳转 目录 设计模式介绍 GoF该书设计了23个设计模式 设计模式(Design Patterns)--可复用面向对象软件的基础 设计模式分类 1 创建型模式 2 ...

  5. 23种设计模式——装饰者模式

    文章目录 23种设计模式--装饰者模式 1.装饰者模式概述 2.装饰者模式的结构 3.装饰者模式的实现 4.装饰者模式的应用场景 23种设计模式--装饰者模式 1.装饰者模式概述 背景 有些人为了早上 ...

  6. 【每天一个java设计模式(完)】 - 四万字实现23种设计模式(附示例源码)

    什么是设计模式:[每天一个java设计模式(零)] - 设计模式基本概念及七大设计原则 创建型模式 工厂模式:[每天一个java设计模式(一)] - 工厂模式 抽象工厂模式: [每天一个java设计模 ...

  7. 23种设计模式-完结!

    23种设计模式(Java版本) 总述 ​ 在大四的时候开始了作为一个码农的实习阶段,在进入公司之前,我只知道一些简单的工厂模式--比如简单工厂(对应还有"复杂"工厂).单例模式.代 ...

  8. 23种设计模式(一)

    1. 软件设计模式意义     设计模式的本质是对面向对象设计原则运用,是对类的封装.继承和多态以及类的关联关系和组合关系的充分理解.优点: 可以提高程序员的思维能力.编程能力和设计能力 使程序更加标 ...

  9. 详解23种设计模式(基于Java)—— 结构型模式(三 / 五)

    目录 3.结构型模式(7种) 3.1.代理模式 3.1.1.概述 3.1.2.结构 3.1.3.静态代理 3.1.4.JDK动态代理 3.1.5.CGLIB动态代理 3.1.6.三种代理的对比 3.1 ...

  10. 23种设计模式介绍以及在Java中的实现

    本文章出自:blog.csdn.net/anxpp/artic- 若要查看原文请点击 文章中的示例源码在github上:github.com/anxpp/JavaD- 由于CSDN上的下拉翻页比较麻烦 ...

最新文章

  1. c#结合emgucv进行人脸检测_人脸识别与测温结合在办公场景有哪些应用?
  2. android onresume时view,android – 当对话框出现时不调用OnResume
  3. 可以输入值的下拉框(select和input的组合使用)
  4. Asp.net中Application Session Cookie ViewState Cache
  5. 文档隐写溯源技术分析
  6. 计算机四级等级考试网络工程师知识点-【操作系统原理+计算机网络两科完整】
  7. while 循环语句的使用
  8. fastapi+tortoise单元测试
  9. 虾皮的注册流程是什么?怎么注册虾皮?
  10. vue 中的 attribute 和 property
  11. X-Frame-Options响应头配置详解
  12. 新能源汽车VCU/HCU,BMS和MCU仿真测试系统实验室
  13. 【python--程序】printf格式化输出函数
  14. java计时器_Java 计时器
  15. java将本地图片复制添加水印并导出到本地
  16. 优信拍集团php面试题_【优信拍PHP高级工程师面试】问一些底层的问题和准则-看准网...
  17. 热力学定律文明逻辑人工智能······
  18. 计算机电源用什么端子,关于电源接线端子 你应该知道的一些知识
  19. 【转】为什么FPGA难学?是因为你还没搞清背后的根源
  20. tp5导入csv数据到mysql_tp5 Excel表格导入_tp5导出Excel

热门文章

  1. 1. 第一个lavarel 项目
  2. 浅入浅出 Java 排序算法
  3. 盒模型bug的解决方法
  4. 两种获取python版本的方法
  5. linux下Vim的使用
  6. 《Cocos2d-JS开发之旅》重印在即,感谢大家的支持
  7. 第十章 提升论文的可读性 --《英语科技写作(文法与修辞原则)》by 方克涛
  8. 解决PID 4、NT Kernal占用80、445等端口
  9. C# datagridview 实现按指定某列或多列进行排序
  10. Sql Server 中 根据具体的值 查找该值所在的表和字段