




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 面向对象设计模式的课件设计面向对象设计模式的课件设计 应用科技学院应用科技学院 计算机科学与技术专业计算机科学与技术专业 120642010208120642010208 黄智杰黄智杰 指导教师 洪中指导教师 洪中 摘要摘要 设计模式可以用来解决软件设计过程中反复出现的问题 并且使用设计模式 可以有效的提高软件的复用设计模式可以用来解决软件设计过程中反复出现的问题 并且使用设计模式 可以有效的提高软件的复用 性 可靠性和可维护性 灵活应用设计模式对于设计人员来说是一个衡量技术水平的重要指标 本论文介绍了设计模性 可靠性和可维护性 灵活应用设计模式对于设计人员来说是一个衡量技术水平的重要指标 本论文介绍了设计模 式的定义 作用 分类 重点分析了创建型模式的设计方法 并对简单工厂 工厂方法和抽象工厂三种分析模式的优式的定义 作用 分类 重点分析了创建型模式的设计方法 并对简单工厂 工厂方法和抽象工厂三种分析模式的优 缺点进行分析 设计了几种将创建型模式运用于面向对象设计中的教学案例 并将其用于课件设计中 缺点进行分析 设计了几种将创建型模式运用于面向对象设计中的教学案例 并将其用于课件设计中 关键词关键词 设计模式 简单工厂 工厂方法 抽象工厂 课件设计 2 目目 录录 1 1绪论绪论 3 3 1 1 背景与意义 3 1 2 主要工作 4 1 3 论文的组织结构 4 2 2设计模式简介设计模式简介 5 5 2 1 设计模式的定义 5 2 2 设计模式的作用 5 2 3 设计模式的由来 5 2 4 设计模式的分类 6 2 5 本课题的研究重点 创建型模式 6 3 3创建型模式的分析创建型模式的分析 7 7 3 1 FACTORY METHOD工厂方法模式 7 3 2 ABSTRACT FACTORY 抽象工厂模式 11 4 4设计模式的课件设计设计模式的课件设计 2121 4 1 课件设计的意义 21 4 2 模拟实践教学中教师的地位与作用 22 4 3 设计模式的多媒体课件设计 22 5 5总结总结 2323 6 6参考文献参考文献 2525 3 1 1 绪论绪论 1 1 背景与意义背景与意义 随着计算机技术的发展和软件技术的发展 软件开发也出现了许多问题 有许多高成本和低效率 内 部和外部因素 为了解决软件行业长期存在的问题 提高工作效率和质量的软件的生产 这人继续探索 新方法 基于组件的软件重用是热点之一 目前的软件工程 该方法可以有效地重用现有组件 如控制 图书馆 图书馆 需求分析 设计文档 重用可以避免重复的设计 提高软件开发的效率 重用可以提 高产品开发 提高软件的质量可靠性 多路复用可以培养客户使用 降低客户成本 因此 如何实现有效 的重用 设计模式是一种有效的手段 1 设计模式的提出 软件设计 软件的规模和复杂度不断增加 特别是 可用性和可维护性提出了越来越高的要求 使得软件代码的程序开发面临着巨大的挑战 设计模型 提出了解决方案的开发过程是一个有效的手 段 模式定义在具体的语境中反复出现的问题的解决方案 它是经验的文档 在各种设计 建筑 机 械 软件 经验很重要 一个好的经验来指导我们的工作 节省时间 坏的经验和借鉴 从而减少 失败的风险 但只有经验的积累 是难以记录和教 为了解决这个问题 第一个建筑师亚力山大 模 式 的概念 亚力山大指出 该模式是一个世界 但也是一个规则 应该告诉你如何创建一个真实 的 当创建 它不仅是过程 这是一种 在目前的物理描述 您也可以创建一个物理过程的描述 后 来模型的概念已应用于计算机科学 erichgamma richardhelm 约翰逊和约翰 vlissides 出版的重要 著作 设计模式 可复用面向对象软件的基础 这项工作是模型的初始分类 他们后来被称为 60 四组 抽象层次的面向对象设计模式是用来描述一个特定的场景 解决一般问题的设计类和对象 设计 模式识别由类和情况下的合作和职责分配 随着软件技术的发展 面向对象的程序已被广泛认可 用发展的思路 面向对象的编程 设计模 式在软件工程已成为不可缺少的工具 目前 该设计模式在计算机领域具有超出了影响建筑业 软件架构的设计模式描述了一个反复出现的设计问题在一个特定的环境 它提供了一个很好的证 明主计划 设计模式可以用来构建软件架构具有特定性质的 合理有效地利用模型来指导软件体系结 构设计可以起到事半功倍的效果 既缩短了软件的设计与实现周期 以提高软件的可重用性 可移植 性 2 设计模式在国内外研究现状 设计模式最早可以追溯到上世纪 80 年代 那时 你是最流行的面向对象的语言 和风险投资仍处 于早期阶段 在这一时期的思想主流 结构化程序设计和面向对象编程思维仍然不利于 编程框架是 非常流行的时间 为框架的开发 设计模式开始出现 参考框架的模型 视图 控制器频率最高的 它 将用户界面分为三个部分 数据模型 视图和控制器 它反映了设计模式的优势 设计模式将正式签署的伽玛 掌舵 约翰逊和 vlissides 经典书 的设计模式可复用面向对象软 件的基础 一书出版于 1995 研究设计模式开始出现了一个高潮 设计模式的研究历史已正式十多年 是一个新的研究领域 同时 是一个热门的研究领域 设计 模式起源于国外 主要研究在国外工作 现在 外国软件工程的设计模式在软件架构 设计 代码和 开发过程和组织 理论结果从 1994 个 设计模式 会议论文三 国内的研究和应用设计模式是一个很 短的时间 仍处于起步阶段 4 目前 设计模式 在国内外的研究工作主要有以下几个方面 1 发现新的设计模式 国际法律会议每年举行 包括设计模式 讨论和总结了设计模式 如通讯 网站开发场 之间关 系的设计模式和面向对象技术是当前研究的一个重点 2 应用设计模式的实现 虽然有很多的设计模式 并提出了在所有领域的设计模式 但使用时 并不是所有的模型可以直 接使用 需要改进 更适合的应用 因此 应用及改进设计模式是当前研究的一个热点 3 组织和索引模型 随着越来越多的模型需要一个合适的覆盖所有的组织模式 和模型提供了一个指标 建立一个真 正成熟的模型系统能有效地支持高质量的软件开发 4 的形式化模型 提出了 2 种设计模式描述结构的建议 即 方法和数学形式表达这 2 种方法是本研究逐级关闭 5 使用的设计模式和设计自动化工具 支持模型 6 设计模式 面向对象技术 在中国 学习设计模式的滞后 和许多讨论的设计模式的应用 国内图书设计模式为最 从这一 点来看 赶超世界发达国家的软件 我们仍有很长的路要走 但更广泛的应用设计模式在中国 国内 的开发商将带来更多的参与设计模式的应用开发项目 思想大师设计模式已被广泛接受 设计模型将 是一个新的台阶 1 2 主要工作主要工作 设计模式描述了一个通用的解决方案有一个共同的问题在软件设计过程 面向对象设计模式描述 了面向对象的设计方法 具体情况 组织之间的关系的类的对象和互相沟通 设计模式在面向对象技 术 面向对象 深入了解的基础上 实证了解学生在学习过程中 往往因为面向对象基本概念和机制 以及实际设计问题的理解不深 不能透彻地理解设计模式 不足 甚至误解 为此 针对常见的 23 种 GOF 设计模式 设计简单直观的动画演示 便成为了一种必要的教学辅助手段 本课题主要针对 23 种 GOF 设计模式中简单工厂模式和复杂工厂模式的设计模式 设计其相关的教 学案例 并以课件的形式对其进行实现 1 3 论文的组织结构论文的组织结构 本论文分为五章 每一章如下 第一章 本章首先介绍了研究的背景 指出了研究的重要性和设计模式 其次是本课题内容 最 后介绍本文的主要内容和组织结构的纸 第二章 本章介绍 设计模式的定义 设计模式 意义 描述和分类和选择工厂方法予以介绍 第三章 详细的课题 研究的重点内容 创作模式 工厂模式和抽象工厂模式设计模式 设计教 学案例 5 第四章 详细设计的意义 课件的设计和课件的设计模式的描述 以及角色模拟实践教学 第五章 本章主要是对本论文的总结 总结本论文的剩余的问题和不足 并展望未来的工作 2 2 设计模式简介设计模式简介 2 1 设计模式的定义设计模式的定义 让我们先看看定义的模式 模式的构想是一个问题的解决方案 它已被应用于实际环境 并可以 适用于其他环境 然后 我们可以得到有关资料 设计模式 设计模式可复用的解决方案的一类软件 设计问题 设计模式 软件的开发和设计过程 其目的是充分利用现有的软件开发经验 2 2 设计模式的作用设计模式的作用 1 设计的重用 它是更有意义的比简单的代码重用 2 提供一个共同的词汇表的设计 名称每个模式是一种设计词汇 概念作之间的沟通程序员更 方便 3 在发展文件的条款使用设计模式可以让别人更了解你的想法 理解为什么你做你做了什么 编写开发文档和多个任意 4 应用设计模式使重建系统更容易确保开发的正确的代码 并减少错误的可能性的设计和实现 5 可以节省很多时间 2 3 设计模式的由来设计模式的由来 这种设计模式的概念首先产生于建筑行业 设计师 建筑设计 而不是电脑系统 意识到他们需 要分享想法的正确设计技术 这些思想的形成是设计模式允许设计师群体受益于分享经验和教训 设 计模式 从建筑业在 80 年代后期进入该领域的计算机系统 面向对象面向对象 对象 的原理和设计 模式逐渐得到普及 成为培育新的面向对象的最佳做法的追随者 李察伽玛 人们通常称他们四人组 型 编辑的 设计模式 可复用面向对象软件的基础 设计模式在聚光灯 随着越来越多的设计 模式 他们参与地区的影响 本和杰里 也越来越普遍了 对于那些不熟悉的著名冰淇淋品牌本 和杰里是一个供应商的冰淇淋 冰淇淋产品的每一个可以想象的成分的组合 包括一些你永远不知道 因此 它是一种设计模式 面向对象设计模式高夫书 但现在包括设计模式设计开发语言 应用服 务器 工业合成 设计模式通常是根据一些共同的特征 设计模式到处 阅读技术出版物或浏览技术方面的网站 很容易找到一个参考设计模式 到目前 为止 您可能已经阅读 至少能读 设计模式的书籍 如 核心设计模式 写的四人组 设计模式 在这一点上 你可能会有一些怀疑的设计模式 设计模式帮助我吗 他们是银色子弹 什么是问题的 使用设计模式 为什么我不能得到的集成开发环境 综合开发环境 集成开发环境 的设计模式 几 个设计模式的一些经典的过程中遇到的问题 通常情况下 概念和这些概念的世界中的应用不同的设 计模式也不例外 设计模式提供了一个共同的经验 你可以使组织利益和避免重复发明 设计模式捕 获通常描述问题 问题情境 推荐解决问题的程序和使用的解决方案可以预测的结果 为了有广泛适 用 读者 设计模式通常是抽象从具体的细节取决于环境 本文已产生了一些解码必要的设计模式 应用到现有的情况 这是一个重要的细节 设计模式是一个很好的方式分享知识 但通常是正确应用 的专业知识是非常重要的 6 2 4 设计模式的分类设计模式的分类 设计模式 一书 discusses23 不同的模式 根据目的把他们分成三类 这些目的在变化的具 体情况 3 分类分别 1 创建 Creational 型 如何创建一个类型的对象 这通常包括分离对象创建的细节 使您的 代码并不取决于类型的对象 当增加新的对象类型 当不需要改变的代码 下面将提到一个单一的模 型 CSingleton 是一种创作模式 在后面的章节 你会看到工厂方法 Factory Method 和原型模 型 Prototype 2 结构 structural 型 设计满足特定约束对象在某些工程 它的工作原理是这样的 一组 对象和其他对象相关联 当系统发生变化的时候 之间的关系不变对象 3 行为 Behavioral 型 是指一个程序处理一系列特定类型的操作对象 他们的一系列操作 如语言的解释 interpreting a language 填写表格 遍历序列 如一个迭代器 iterator 等 或实现算法 书中的观察者模式 Observer 和访问者模式 Visitor 说明 2 结合设计实例从面向对象的设计分析 23 个设计模式 总结了面向对象设计中最有价值的经验 并 且用简单的可复用的形式表达 该书分类描述了一组设计 表达清楚的软件设计模式 这些模式在实 际情况下是特别有用的 2 5 本课题的研究重点 创建型模式本课题的研究重点 创建型模式 创建模式 Creational Pattern 的实例化的类抽象 可以软件模块对象的创建和使用对象分离 为了使软件更清晰的结构 在这些对象只需要知道他们的共同的接口 而不知道具体实施的细节 使 整个系统的设计更符合单一职责原则 创建型模式在创造什么 What 谁创造 Who When 当创建等方面的软件开发人员提供一 个可能的更大的灵活性 创建型模式隐藏类的实例被创建隐藏的细节 如何创建一个对象 结合在一 起 使整个系统独立客观 7 3 3 创建型模式的分析创建型模式的分析 创建型模式抽象了实例化过程 它们帮助一个系统独立于如何创建 组合和表示它的那些对象 一个类创建型模式使用继承改变被实例化的类 而一个对象创建型模式将实例化委托给另一个对象 1 3 1Factory Method 工厂方法模式工厂方法模式 意图 定义一个创建对象的接口 让子类决定实例化哪一个类的工厂方法使一个实例化推迟到子 类 简单工厂 工厂方法 抽象工厂模式 工厂方法来理解 这里介绍简单工厂模式 3 1 1 简单工厂简单工厂 我们介绍一个简单工厂模式 提供用于创建对象的接口 使用 Factory 的对象是通过不同的参数 以便返回相同的基类或实现相同的接口对象 工厂模式是一个最重要的模式 因为大多数的模式是必 要的 使用工厂模式 如果没有正确地使用了工厂模式 它可以说是一个合格的建筑师 工厂现有的 原因 是抽象创建界面过程 C 是基类 或是空的 纯虚基类 COM 中是接口 使用工厂模式要注意的几个角色 是两个层次结构 首先你要确定产品的接口 如上述 Sample 产品界面下 Sample 接口实现类 如 SampleA 然后有一个 factory 类 用于生成产品的 Sample 如图 所示 右为生产对象 Sample 图 3 1 工厂模式的两极结构 为什么工厂模式是如此普遍 因为工厂模式相当于创建实例的 new 我们经常要根据类的 Class 生成的对象实例 如 A a new A 工厂模式是用来创建一个实例的新 所以以后 new 要多个心眼 是 否可以考虑本实用新型工厂 虽然这样做 可能做了一些工作 但会给你的系统更可扩展性和尽量减 少数量的修改 我们以类 Sample 为例 下面就是 C 实现示例如下 class Sample Sample virtual Sample Interface list 8 class SampleA public Sample SampleA virtual SampleA Interface implementation class SampleB public Sample SampleB virtual SampleB Interface implementation class Factory public SampleB virtual SampleB static Sample creator int which if which 1 return new SampleA else if which 2 return new SampleB 9 在 GOF 的设计模式中没有简单工厂 而是将其作为工厂方法的一个特例加以解释的 可以这样理 解 简单工厂是参数化的工厂方法 简单工厂的作用是实例化对象 而不需要客户了解这个对象属于 哪个具体子类 缺点是可实例化的类型在编译期间已绑定 如果增加新类型 则需要修改工厂 简单 工厂需要知道所有要生成的类型 当子类过多或者子类层次过多时不适合使用 3 1 23 1 2 工厂方法工厂方法 工厂方法模式 Factory Pattern 是类的创建模式 又叫做虚拟构造子 Virtual Constructor 模式或 者多态性工厂 Polymorpic Factory 模式 工厂方法模式发展了简单工厂模式 在简单工厂模式中只有 一个具体的工厂 而在工厂方法模式中有一个工厂层次结构 这克服了简单工厂模式的缺点 使得具 体工厂和具体产品可以平行的发展 从而更加符合开闭原则如果工厂方法模式中的工厂层次结构退化 成为一个具体工厂 那么工厂方法模式就退化成了简单工厂模式 3 1 3 工厂方法模式角色与结构工厂方法模式角色与结构 抽象工厂 Creator 角色 是工厂方法模式的核心 与应用程序无关 任何在模式中创建的对象 的工厂类必须实现这个接口 提供一个创建一系列相关或相互依赖对象的接口 而无需指定它们具体 的类 3 具体工厂 Concrete Creator 角色 这是实现抽象工厂接口的具体工厂类 包含与应用程序密切 相关的逻辑 并且受到应用程序调用以创建产品对象 在上图中有两个这样的角色 BulbCreator 与 TubeCreator 抽象产品 Product 角色 工厂方法模式所创建的对象的超类型 也就是产品对象的共同父类或 共同拥有的接口 在上图中 这个角色是 Light 具体产品 Concrete Product 角色 这个角色实现了抽象产品角色所定义的接口 某具体产品有 专门的具体工厂创建 它们之间往往一一对应 如下图所示 这里有四个参与者 抽象工厂 Creator 具体工厂 BulbCreator TubeCreator 抽象 产品 Light 和具体产品 BulbLight TubeLight 客户能够看到抽象工厂 抽象产品和具体的工厂 这里 有一点似乎不是很完美 就是要由客户负责创建具体工厂 在实际应用中我们可以通过在工厂层次结 构中使用简单工厂模式来解决这个问题 如果您对如何使用简单工厂模式来解决这个问题还不是很清 楚可以上一节列出的简单工厂模式 10 图 3 2 简单工厂模式的应用 从客户的角度出发来看这个模式它是符合开闭原则的 即当我们要为系统添加新的具体产品时只 需要添加一个具体工厂和一个具体产品 而这不会不影响客户 工厂方法应用到 快餐店 问题 图 3 3 快餐店的事例 工厂方法模式是使用统一的工厂接口不同工厂的子类创建对象的实例 重点工厂基类接口 客户 使用它实例化具体产品 并立即引进到抽象工厂是不一样的 客户访问工厂对象的实例化 客户是不 负责具体的产品 以下提到的 工厂对象的功能是负责其他类的实例化 如抽象工厂对象或简单的工厂对象 例如 一个对象实 例化对象的唯一的职责和工厂 工厂方法存在不同 只有工厂方法实例化相关的类型的实例 此外 这个类的对象也有其他功能 也就是说除了工厂方法 与其他方法 工厂方法只是一种 产品 或 班 和抽象工厂实际上许多平行于产品 因此不同层次 抽 象工厂是名副其实的 工厂 即不仅生产产品 抽象工厂是一个高层次的模型 11 3 2Abstract Factory 抽象工厂模式抽象工厂模式 在软件系统中 经常面临 一系列的依赖对象 创建工作 同时随着需求的变化 往往有更多的 一系列对象的创建工作 如何应对这一变化呢 如何绕过传统的对象的创建方法 New 提供 一揽 子 机制避免客户端程序和 系列特定对象的创建工作的 紧密结合 这是我们想说的抽象工厂模式 抽象工厂模式 工厂模式在所有形式中最抽象的一般形式 工厂方法只是一种 产品 或 班 和抽象工厂实际上许多平行于产品 因此不同层次的抽象工厂 是名副其实的 工厂 即不仅生产 产品 抽象工厂是一个高层次模型 在应用程序的视图需要使用一系列相关的类是一个创建接口 如下 图所示 如图 3 4 抽象工厂的事例 3 2 13 2 1 生活中的实例生活中的实例 这个生活中的实例代码演示了一个电脑游戏 在游戏中建立不同的动物世界会使用不同的工厂 虽然创建动物的大陆工厂是不同的 但是动物之间的相互关系保持不变 using System namespace DesignPatterns Creational AbstractFactory RealWorld class MainApp 12 public static void Main 创建非洲大陆 ContinentFactory africa new AfricaFactory AnimalWorld world new AnimalWorld africa world RunFoodChain 创建美洲大陆 ContinentFactory america new AmericaFactory world new AnimalWorld america world RunFoodChain 等待用户输入 Console ReadKey 抽象工厂 abstract class ContinentFactory 创建食草动物 public abstract Herbivore CreateHerbivore 创建食肉动物 public abstract Carnivore CreateCarnivore 具体工厂 1 class AfricaFactory ContinentFactory public override Herbivore CreateHerbivore 返回牛羚 return new Wildebeest 13 public override Carnivore CreateCarnivore 返回狮子 return new Lion 具体工厂 2 class AmericaFactory ContinentFactory public override Herbivore CreateHerbivore 返回野牛 return new Bison public override Carnivore CreateCarnivore 返回狼 return new Wolf 抽象产品 A abstract class Herbivore 抽象产品 B abstract class Carnivore 交互关系 食肉动物可以吃掉食草动物 public abstract void Eat Herbivore h 14 具体产品 A1 class Wildebeest Herbivore 具体产品 B1 class Lion Carnivore public override void Eat Herbivore h 吃掉牛羚 Console WriteLine this GetType Name eats h GetType Name 具体产品 A2 class Bison Herbivore 具体产品 B2 class Wolf Carnivore public override void Eat Herbivore h 吃掉野牛 Console WriteLine this GetType Name eats h GetType Name 15 客户端 class AnimalWorld private Herbivore herbivore private Carnivore carnivore 通过构造器传入具体工厂 public AnimalWorld ContinentFactory factory carnivore factory CreateCarnivore herbivore factory CreateHerbivore public void RunFoodChain carnivore Eat herbivore 输出的结果为 Lion eats Wildebeest Wolf eats Bison 如何使用抽象工厂 在下列情况下应考虑使用抽象工厂模式 一个系统不应该依赖于产品类的实例如何创建 组合和表达的细节 这对所有形式的工厂模式是 重要的 该系统产品有多个产品系列 而只消耗一系列产品 这就是所谓的抽象工厂模式的初衷 属于同一系列产品在一起 这种限制必须在系统的设计体现在 该系统提供了一个产品类库 所有产品在同一界面 使客户并不取决于实现 3 2 23 2 2 实际项目举例实际项目举例 现在需要创建分属于不同操作系统的视窗构件 比如命令按钮 Button 与文本框 Text 等都 是视窗构件 在 UNIX 系统的视窗环境和 Windows 操作系统的视窗环境中 这两个构件有不同的本地体 16 现 它们的细节也有所不同 在每一个操作系统中 都有一个视窗构件组成构件家族 在这里就是 Button 和 Text 组成的产品族 而每一个视窗构件都构成自己的等级结构 由一个抽象角色给出抽象 的功能描述 而由具体子类给出不同操作系统的具体实现 如下图所示 图 3 5 可以发现在上面的产品类图中 有两个产品的等级结构 分别是 Button 等级结构和 Text 等级结 构 同时有两个产品族 也就是 UNIX 产品族和 Windows 产品族 UNIX 产品族由 UnixButton 和 UnixText 产品组成 而 Windows 产品族由 WinButton 和 WinText 产品构成 系统对产品对象的创建需求由一个工厂的等级结构满足 其中有两个具体工厂角色 即 UnixFactory 和 WinFactory UnixFactory 对象负责创建 Unix 产品族中的产品 而 WinFactory 对象 负责创建 Windows 产品族中的产品 这就是抽象工厂模式的应用 抽象工厂模式的解决方案如下图所 示 图 3 6 抽象工厂模式的解决方案 显然 一个系统只能够在某一个操作系统的视窗环境下运行 而不能够同时在不同的操作系统上 运行 所以 系统实际上只能消费属于同一个产品族的产品 这个案例实际上也正是抽象工厂模式的 起源 实现的代码如下 Project code using Abstract Factory in C 抽象工厂起源案例 using System namespace DesignPatterns Creational AbstractFactory Project class MainApp 17 public static void Main 创建 Unix 使用环境 OSFactory unix new UnixFactory Client client new Client unix client Run 创建 Windows 使用环境 OSFactory windows new WinFactory client new Client windows client Run 等待用户输入 Console ReadKey 抽象工厂 abstract class OSFactory 创建按钮构件 public abstract Button CreateButton 创建文本框构件 public abstract Text CreateText 具体工厂 1 class UnixFactory OSFactory public override Button CreateButton 返回 Unix 下的 Button 18 return new UnixButton public override Text CreateText 返回 Unix 下的 Text return new UnixText 具体工厂 2 class WinFactory OSFactory public override Button CreateButton 返回 Windows 下的 Button return new WinButton public override Text CreateText 返回 Winodws 下的 Text return new WinText 抽象产品 A abstract class Button 抽象产品 B abstract class Text 19 交互关系 public abstract void Interact Button b 具体产品 A1 class UnixButton Button 具体产品 B1 class UnixText Text public override void Interact Button b Console WriteLine this GetType Name interact with b GetType Name 具体产品 A2 class WinButton Button 具体产品 B2 class WinText Text public override void Interact Button b Console WriteLine this GetType Name interact with b GetType Name 20 客户端 class Client private Button button private Text text 通过构造器传入具体工厂 public Client OSFactory factory button factory CreateButton text factory CreateText public void Run text Interact button 输出结果为 UnixText interact with UnixButton WinText interact with WinButton 小结 抽象工厂模式是一个在实际项目中应用设计模式 抽象工厂模式面临的问题 多个产品等级结构 的系统设计 运用抽象工厂模式是关键 如果产品创建的任务移交给工厂完成 希望在我们掌握工厂 模式的基础上尝试考虑到应用 形成一种思维定势 21 4 4 设计模式的课件设计设计模式的课件设计 4 1 课件设计的意义课件设计的意义 对于教育来说也是一个很好的工具 如果专业的对课件设计并巧妙的应用课件有以下几点好处 1 可以激发学习动机 学生的学习不只是为了适应学校的环境 而是为了改造未来世界 如果学生意识不到当前的学习 与将来生活和社会实践的关系时 就不可能产生学习需要 也不能为学习付出足够的努力 因此 教 师的任务在于引导学生将学习需要由潜在状态转化为活动状态 因此 将软件工程这种偏理论的教学 充分使用课件设计 既有动画播放效果使学习动机成为推动学习行为的动力 从而激发学生的学习动 机 2 因材施教 人在气质 性格 能力上都存在个别差异 教学工作要取得最大的效果 尽快地 高质量地为国 家培养人才 就必须针对学生心里的个别差异 采取不同的措施 也就是要因材施教 要在教学教育 中贯彻个别对待的原则 综上所述 坐在理论知识学习课堂上的学生往往不能完全理解到底设计模式的抽象 他们对于这 样一个抽象的名词 总是觉得学习很枯燥 而我们借助课件设计模拟实验平台就能解决这一问题 既 能以生动的界面和模块吸引每位学生的眼球 使其自动激发学习积极性 又能因材施教 针对每位同 学的不同问题进行答疑 4 2 模拟实践教学中教师的地位与作用模拟实践教学中教师的地位与作用 传统的课堂学习和模拟实践教学是不同形式的教学需要教师更好地指导和协调 整个教学活动中 成为一个有机的整体 在模拟实践教学教师需要井控仿真时间调整模拟课堂气氛 引导学生的思维方 式 让学生发挥主动性 有意识的思维习惯 4 3 设计模式的多媒体课件设计设计模式的多媒体课件设计 设计模式中的多媒体课件设计首先定义了课堂教学信息组织与表示 它建立了课件的主要框架 设计模式的定义 功能 起源和分类 为了让学生更好地了解设计模式中创建模式实施重点 实例中 体现教学的功能及教学策略 结构设计主要考虑的是如何在技术上达到一定的教学过程和教学模式 22 课件的设计必须以先进的教育理论 学习理论为指导 必须体现先进的教育理念 课件的开发应 尽可能减少使用环境的要求和降低开发成本 方便的设计平台 尽可能采用 以便最大限度地利用课 件和易操作 教学设计是关键环节 也是教学理念是最直接和具体表现 最能体现教师的教学经验和教师个性 在多媒体课件的设计与开发过程中 多媒体课件设计是运用系统的观点和方法 在分析教学内容和教 学对象的基础上 围绕教学目标 要求 合理选择和设计 运用恰当的教学模式和教学策略的设计过 程课件 例如对介绍工厂方法模式 可以利用如下图更简单明了引入 图 4 1 介绍工厂方法引入的课件 再利用时效跳转到下一张说明说明传统设计的缺点 如下图 23 图 4 2 传统设计的缺点 通过图 4 1 和图 4 2 我们可以发现设计模式的课件设计内容主要包括学习者特征分析 原有认知 结构和能力 视觉效果以及设计模式的操作演示 理论分析 根据各种模式的区别 来选择的多媒 体信息 地图 文字 声音 的选择和设计 教学模式 教学设计 战略选择学习评估 问题 答复 反馈 用来描述的结果 手稿编写与教学设计 24 5 5 总结总结 解决问题的方法是设计模式是的高层次的抽象 各个模式描述了一个在我们周围一直重复发生 的问题 和该问题的解决方案的核心 因此 只能一次又一次的使用该方案才不必做重复劳动川 本论文主要阐述了使用设计模式的简单工厂模式和复杂工厂模式的目的和意义 设计模式的描述 的一些方法 设计模式主要分类 并重点分析创建型模式中的工厂模式主要是为创建对象提供过渡接 口 并将分为三类 简单工厂模式 工厂方法模式和抽象工厂模式 主要组成如下表 表 5 1 创建型模式的对比 简单工厂模式工厂方法模式抽象工厂模式 概念又称静态工厂方法 模式 用于定义一个创 建对象接口 去掉了简单工厂模 式中工厂方法的静态属 性 可以被子类继承 这样简单工厂模式集中 在工厂方法上的压力可 以由工厂方法模式里不 同的工厂子类来分担 主要用意是给客户端 提供一个接口 可以创建 多个产品族中的产品对象 而且使用抽象工厂模式还 要满足一下条件 系统中 由多个产品族 系统一次 只能消费一族产品 具体工厂类角色本模式的核心 含 商业逻辑和判断逻辑 通常有一个实体类实现 含有和具体业务逻 辑有关的代码 由应用 程序调用以创建对应的 具体产品对象 含有和具体业务逻 f 辑有关的代码 由应用程 序调用以创建对应的具体 产品的对象 在 java 中 它由具体的类来实现 抽象工厂角色本模式的核心 与 应用程序无关 是具体 工厂工厂角色必须实现 的接口或者必须继承的 父类 通常由抽象类或 者接口来实现 这是本类模式的核心 它与应用程序无关 是具 体工厂角色必须实现的接 口或者必须继承的父类 在 java 中它由抽象类或 者接口来实现 抽象产品角色具体产品继承父类 或者实现的接口 在 java 中由接口或者抽 象类来实现 它是具体产品继承 的父类或者是实现的接 口 在 JAVA 中一般有抽 象类或者接口来实现 具体产品继承父类或 者是实现的接口 在 java 中一般有抽象类或 者接口来实现 具体产品角色工厂类所创建的对 象就是此角色的实例 通常有一个具体类实现 具体工厂角色算创建 的对象就是此角色的事例 在 java 中由具体的类来 实现 具体工厂角色所创 建的对象就是此角色的 事例 在 java 中由具体 的类来实现 因此 我们可以总结设计模式是解决问题的方法的高层次的抽象 每个模式描述了一个在我们周 围不断重复出现的问题 而解决问题的核心 通过以上分析 我们可以得出结论 设计模式是一种设 计问题的解决方案总结 基本上是独立的程序设计语言 每个模式都有自己独特的优势 也有自己的 缺点和不足 因此 语言不同的应用模式是不现实的 现在 一个新的面向对象的程序开发的设计模 型和实现简单 可靠 高效 和设计模式丰富的语言的实现方法 使语言更有力 程序设计语言和模 25 式的发展是相辅相成的 他们可以有效地避免的缺点 下一步就是要研究如何使用设计模式和面向对 象程序相互融合与结合 使用多媒体课件设计说明的模式不仅是教师教学技能的显示
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 热力公司工作总结
- 科组工作计划汇报
- 检察院项目汇报
- 护理心肌梗死业务查房
- 《美丽的桥》课件
- 电气行业售后部门年终总结
- 语文记叙文章讲解
- 血管性认知障碍的护理
- 糖尿病饮食护理专题课程
- 骶尾骨髓炎护理
- JTGT D 65-05-2015 公路悬索桥设计规范正式版
- 凤凰台上忆吹箫课件
- 全国农村饮水安全工程十一五规划
- 加油站安全生产标准化全套资料
- 椒花水库移民安置档案归档范围及保管期限表
- 马克思主义发展史课件
- GB/T 5780-2016六角头螺栓C级
- GB 1903.50-2020食品安全国家标准食品营养强化剂胆钙化醇(维生素D3)
- 横河DCS-培训讲义课件
- 部编版三年级下册语文全册课件【完整版】
- 初中数学几何1000题专项训练(含详解分析)-最新
评论
0/150
提交评论