设计模式总体简介

1. 设计模式分类。

  设计模式在粒度和抽象层次上各不同,以有效的方式组织起来便于对各族相关的模式进行引用,同时也便于发现新的设计模式。

  分类原则:

    (1) 目的准则: 根据模式是用来完成什么工作的来划分。

      创建型: 与对象的创建相关。

      结构型: 处理类和对象的组合。

      行为型: 对类或对象怎样交互和怎样分配职责进行描述。

    (2) 范围准则: 指定模式主要是用于类还是用于对象。

      类模式: 处理类和子类之间的关系,这些关系通过继承建立, 是静态的,在编译时刻便确定下来了。

      对象模式: 处理对象间的关系,这些关系在运行时刻是可以变化的,具有动态性。

      从某种意义上来说, 几乎所有模式都是使用继承机制, 所以“类模式” 只指那些集中于处理类间关系的模式,而大部分模式都属于对象模式的范畴。

2. 设计模式的组织方式:

  创建型类模式将对象的部分创建工作延迟到子类, 创建型对象模式将它延迟到另一个对象中。

  结构型类模式使用继承机制来组合类,结构型对象模式描述了对象的组装方式。

  行为型类模式使用继承描述算法和控制流,行为性对象模式描述一组对象怎样协作完成单个对象无法完成的任务。

  有其他组织模式的方式, 有些模式会绑定在一起使用, 如: Composite 常和Iterator,Visitor一起使用; 有些模式是可替代的, 如:Prototype常用来替代Abstract Factory;有些模式尽管使用意图不同,但设计结果很相似,如:Composite 和 Decorator 结构图是相似的。

  从多角度去思考设计模式,有助于对其功能,差异和应用场合有更深入的理解。

3. 设计模式怎样解决设计问题:

  (1) 寻找合适的对象

    客户请求是使对象执行操作的唯一方法,操作是对象改变内部数据的唯一方法。

    面向对象最困难的部分是将系统分解成对象的集合,因为要考虑许多因素: 封装,粒度,依赖关系,灵活性, 性能, 演化, 复用等,而且它们经常是互相冲突的。

    面向对象的设计学支持许多设计方法, 如:(1) 写出问题描述,挑出名词和动词,进而创建相应的类和操作;(2) 关注系统的协作和职责关系; (3) 对现实世界建模,再将分析时发现的对象转化到设计中。

    设计的许多对象来源于现实世界的分析模型,但是,设计结果所得到的类通常在现实世界中并不存在,如数组类这样的低层类。Composite模式引入了统一对待现实世界中并不存在的对象的抽象方法,严格反映当前现实世界的模型并不存能产生也能反映将来世界的系统。

    设计模式帮你确定并不明显的抽象和描述这些抽象的对象。例如:

      描述过程或算法的对象,在现实世界中不存在,但是它却是设计的关键部分。

    Strategy模式描述了怎样实现可互换的算法族, Strategy模式将实体的每个状态描述为一个对象,这些对象在分析阶段,甚至设计阶段的早期都并不存在,后来为了使设计更加灵活,复用性更好才将其发掘

  (2) 决定对象的粒度

    对象在大小和数目上差异大。

    设计模式描述了一个对象应该是什么,粒度有多大。

    Facade模式描述了怎样用对象表示完整的子系统;Flyweight 模式描述了如何支持大量的最小粒度的对象 ,其他一些设计模式描述将一个对象分解成许多小对象的特定方法。

    Abstract Factory和Builder 模式产生那些专门负责生成其他对象的对象; Visitor 和Command 生成的对象专门负责实现对其他对象或对象组的请求。

  (3) 指定对象接口

    对象的接口描述了该对象所能接受的全部请求的集合。当给对象发生请求时,所引起的具体操作既与请求本身相关,又与接受对象相关, 支持相同请求的不同对象可能对请求激发的操作有不同的实现。

  (4) 描述对象的实现

  (5) 运用复用机制

  (6) 关联运行时刻和编译时刻的结构

  (7) 设计应支持变化

时间: 2024-12-31 03:56:57

设计模式总体简介的相关文章

JavaScript 设计模式之简介

一.设计模式概念解读 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.无数实战代码设计经验的总结.使用设计模式是为了让系统代码可重用.可扩展.可解耦.更容易被人理解且能保证代码可靠性. 毫无疑问,设计模式于己于他人于系统都是多赢的:设计模式使代码编制真正工程化:设计模式是软件工程的基石脉络,如同大厦的结构一样.只有夯实地基搭好结构,才能盖好坚壮的大楼.也是我们迈向高级开发人员必经的一步. 程序设计7大面向对象设计原则

angularjs学习笔记1-angular总体简介及其特点

以前开发(web或者移动端)前端主要使用jQuery+原生js,如果使用某些前端UI框架的话,它自己还可能提供一些API可以使用.而且目前很多UI框架都是基于jQuery的,所以说一下由jQuery跨到angularjs跨度较大,研究了一段时间的angularjs ,下面从整体上说说感受吧: 关于和jquery的比较 首先angular是一个mvc框架,它与jquery不同之处在于,前者致力于mvc代码解耦,采用model,controller以及view方式去组织代码,而后者提供给你了很多AP

设计模式(0): 简介及SOLID原则

在软件工程中,设计模式(design pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案. 设计模式并不直接用来完成代码的编写,而是描述在各种不同情况下,要怎么解决问题的一种方案.面向对象设计模式通常以类或对象来描述其中的关系和相互作用,但不涉及用来完成应用程序的特定类或对象.设计模式能使不稳定依赖于相对稳定.具体依赖于相对抽象,避免会引起麻烦的紧耦合,以增强软件设计面对并适应变化的能力. 并非所有的软件模式都是设计模式,设计模式特指软件"设计"层次上的问题

马士兵老师设计模式课程简介

设计模式学习顺序 目录如下: 第一讲:JavaSE_Path_ClassPath(缺) 第二讲:OO 思维 第三讲:抽丝剥茧策略模式,CC接口详细解析 第四讲:Iterator-遍历容器的精灵 第五讲:工厂系列-对象生产过程自定义 第六讲:动态代理-解析Spring的AOP 更新 第七讲:ChainOfResponsibility-解析Filter和Interceptor02 第二段由于粗心,设置错误,没有开麦克风,故没有声音,很是抱歉 具体学习顺序: 设计模式系列 尚学堂科技_马士兵_设计模式

设计模式总体概括

范围\目的 创建型模式 结构型模式 行为型模式 类模式 工厂方法 (类)适配器 模板方法.解释器 对象模式 单例  原型  抽象工厂  建造者 代理   (对象)适配器  桥接  装饰  外观  享元  组合 策略  命令  职责链  状态 观察者 中介者 迭代器 访问者 备忘录 原文地址:https://www.cnblogs.com/the-wang/p/11684134.html

关于设计模式

什么是设计模式: 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 一.常用的设计模式: 设计模式总体分为三大类: 创建型模式(5种):单例模式,工厂模式,抽象工厂模式,建造者模式,原型模式. 结构型模式(7种):适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组合模式.享元模式. 行为型模式(11种):策略模式.模板方法模式.观察者模式.迭代子模式.责任链模式

Android设计模式1

Android设计模式1 简介项目开发中发现问题.解决问题这个过程中会出现很多问题,比如重复出现.某个问题的遗留,这些问题的本质就是设计模式. 解决问题的复杂性 分解分而治之,将大问题分解为多个小问题,将复杂问题分解为多个简单问题 抽象处理复杂性的一个通用的技术--抽象由于不能掌握全部的复杂对象,我们选择忽视它的非本质细节,而去 处理泛化和理想化了的对象模型. 面向对象 理解隔离变化从宏观角度来看,面向对象的构建方式更能适应软件的变化,能将变化所带来的影响减为最小. 各司其职从微观角度来看,面向

移动应用UI设计模式(第2版)——互动出版网

这篇是计算机类的优质首发推荐>>>><移动应用UI设计模式(第2版)> 畅销手册全新升级 全彩印刷 简易的UI模式参考书 交互ui应用的案例教程 界面设计的点睛之笔 超过photoshop设计的框架 找到众妙之门的那把钥匙 编辑推荐 在你急需设计出一个精美易用的移动应用之时,既来不及也没有必要重新发明轮子.本书通过1000张屏幕截图,为你讲解时下安卓.iOS以及Windows Phone平台上90多种移动应用UI设计模式. 自本书第1版出版以来,移动领域日新月异.移动操

java设计模式学习

每次面试都需要看设计模式,每次都很好的理解了,但是实际开发中没有应用总是忘记.现在把它汇总一下. 二十三种设计模式 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组合模式.享元模式. 行为型模式,共十一种:策略模式.模板方法模式.观察者模式.迭代子模式.责任链模式.命令模式.备忘录模式.状态模式.访问者模式.中介者模式.解释器模式. 其实还有两类:并发型模式