第一章·设计模式概述
一、设计模式的定义与分类
1.设计模式的定义
设计模式是一套被反复使用的,多数人知晓的、经过分类编目、代码设计经验的总结,使用设计模式为了可重用代码,让代码更容易被其他人理解并且提高代码的可靠性。
GoF对设计模式的定义如下:
设计模式是在特定环境下为解决某一通用软件设计问题提供的一套定制的解决方案,该方案描述了对象与类之间的相互作用。
2.设计模式的基本要素
设计模式一般包含模式名称、问题、目的、解决方案、效果、实例代码和相关设计模式,其中的关键元素有模式名称、问题、解决方案、效果。
3.设计模式的分类
设计模式一般有两种分类方式:
1,根据目的分类
(1)创建新模式,主要用于创建对象。
(2)结构型模式,主要用于处理类或对象的组合。
(3)行为型模式,主要用于描述类或对象怎样交互和怎样分配职责。
2,根据范围分类
(1)类模式,处理类与子类之间的关系,这些关系通过继承建立,在编译时就被确定下来,是一种静态关系。
(2)对象模式,处理对象间的关系,这些关系在运行时变化,具有动态性。
二、GoF设计模式简介
范围/目的 | 创建型模式 | 结构型模式 | 行为型模式 |
---|---|---|---|
类模式 | 工厂方法模式 | (类)适配器模式 | 解释器模式 模版方法模式 |
对象模式 | 抽象工厂模式 建造者模式 原型模式 单例模式 |
(对象)适配器模式 桥接模式 组合模式 装饰模式 外观模式 享元模式 代理模式 |
职责链模式 命令模式 迭代器模式 中介者模式 备忘录模式 观察者模式 状态模式 策略模式 访问者模式 |
三、设计模式的优点
1,提供了一套通用的设计词汇和一种通用的语言以方便开发人员之间沟通和交流,使得设计方案更加通俗易懂。
2,设计模式使人们可以更加简单、方便的复用成功的设计和体系结构。
3,设计模式使得设计方案更加灵灵活,且易于修改。
4,设计模式的使用将提高软件系统的开发效率和软件质量,并且在一定程度上节约设计成本。
5,设计模式有助于初学者更深入地理解面向对象思想。
四、本章小结
1,模式是在特定环境下人们解决某类重复出现问题的一套成功或有效的解决方案。
2,GoF(Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides)最先将模式的概念引入软件工程领域,它们归纳发布了23种在软件开发中使用频率较高的设计模式,旨在用模式来统一沟通面向对象方法在分析、设计和实现间的鸿沟。
3,设计模式一般包含模式名称、问题、目的、解决方案、效果、实例代码和相关设计模式,其中的关键元素有模式名称、问题、解决方案和效果。
4,设计模式根据目的可分为创建型、结构型和行为型3种;根据范围可分为类模式和对象模式两种。
4,设计模式是从许多优秀的软件系统中总结出来的成功的、能够实现可维护性复用的设计方案,使用这些方案将避免做一些重复性的工作,而且可以设计出高质量的软件系统。
【参考文献】:
本文是根据刘伟的《Java设计模式》一书的学习笔记,仅供学习用途,勿做其他用途,请尊重知识产权。
【本文代码仓库】:https://gitee.com/xiongbomy/java-design-pattern.git
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。