2015年软考系统架构设计师学习笔记第七章(1)
发布时间:2010/12/4 22:24:06 来源:城市学习网 编辑:ziteng
7.1 设计模式概述
重复遇到的典型问题,描述这些共同问题和解决这些问题的方案 就形成了所谓的模式。
7.1.1 设计模式的历史
模式分为几个部分:
特定的情景(Context),指模式在 何种情况下发生作用;
动机(System of Force),指问题或预期的目标;
解决方案(Solution),平衡各动机 或解决所阐述问题的 构造或配置。
每个模式描述了一个在某种特定情境下不断重复发生的问题,以及解决该问题解决方案的核心所在。
7.1.2 为什么要使用设计模式
面向对象设计时需要考虑 封装性、力度大小、依赖关系、灵活性、可重用性 等。
1、简化并加快快设计
无需从底层做起,重用成功的设计,节约开发时间,提高软件质量。
2、方便开发人员之间的通信
可以更准确地 描述问题 及 问题的解决方案,使解决方案具有一致性。
3、降低风险
4、有助于转到面向对象技术
开发人员对新技术往往会有抵触或排斥心理,对成熟的设计模式具有以下特性:
1.巧妙。
2.通用,不依赖于 系统、语言、领域。
3.不仅仅停留在理论上。
4.简单。
5.可重用。
6.面向对象。 [NextPage] 7.1.3 设计模式的组成元素
1、模式名,简洁地描述了 模式的本质,可以帮助我们思考。
2、问题或意图,解释了设计问题和问题存在的前因后果,可能描述了特定的设计问题。
3、情景,告诉我们该模式的适用性。
4、动机,描述相关的动机和约束,通常需要对各期望的目标进行有限排序,动机阐明了问题的复杂性,定义了在相互冲突时所采取的各种权衡手段。
5、解决方案,因为模式就像一个模板,所以解决方案并不描述一个特定而具体的设计或实现,而是提供设计问题的 抽象描述 和怎样用一个 具有一般意义的 元素组合。
6、示例,帮助读者理解模式的具体使用方法。
7、结果情景,阐述了模式后续状态和副作用。
8、基本原理,解释该模式 如何、为何 能解决当前问题。
9、相关模式,包括 静态的 和 动态的,迁到模式、后续模式、替代模式。
10、已知应用,通常好的模式前面都有一个摘要,提供简短的总结和概述,为模式描绘出一个清晰的图画,提供有关该模式能够解决问题的快速信息。
新技术可能带来的效果持怀疑态度。
模式应该说明它的目标读者,以及对读者有哪些知识要求。
7.1.4 设计模式的分类
软件模式 主要可分为 设计模式、分析模式、组织和过程模式等。
设计模式主要用于 得到简洁灵活的 系统设计。
按设计模式的目的划分,创建型、结构型、行为型;
按设计模式范围划分,类设计模式、对象设计模式。
1、创建型模式,对对象实例化过程的 抽象,采用抽象类所定义的接口,封装了对象如何创建、组合等信息。
2、结构型模式,如何组合已有的类和对象 以及获得更大的结构。
3、行为型模式,不仅描述对象或类的模式,还描述它们之间的通信模式,特别是描述一组对等的对象怎样互相协作 完成其中任一对象无法单独完成的任务。