设计模式心得 体会_第1页
设计模式心得 体会_第2页
设计模式心得 体会_第3页
设计模式心得 体会_第4页
设计模式心得 体会_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-精选财经经济类资料- -最新财经经济资料-感谢阅读- 1 设计模式心得体会 7 月初的一个周末,准确的说应该 是 7 月 1 号周六,在网上看到一本大 话设计模式的书,而且看到很多很好 的评论,于是乎,下载了电子书看看, 一下子看了几章之后,对设计模式有了 个了解,于是继续上网搜些其他资料, 进一步了解设计模式。 。 。最终结论:设 计模式是个好东西,具体怎么好,一两 句话是无法概括的,也是从那天起,我 就决定学习设计模式,于是就看大话 设计模式 ,至七月十多号,大概看了 一百多页后,感觉有点难,有点看不下 去的感觉,于是上网找其他的好方法, 无意间发现了李建忠老师的c#设计模 式纵横谈系列讲座,微软的 web cast -精选财经经济类资料- -最新财经经济资料-感谢阅读- 2 课程,主要讲解 gof 的 23 个设计模式, 每个一讲,加上一头一尾,共 25 讲, 试听了一节课后,感觉很有用,于是就 抽时间去边听课边看书,并在我的博客 里写下笔记,依赖加深印象,二来可以 督促我的进度。 。 。 三个月以来,总算把设计模式学 完一遍了,原计划是两个月学完,由于。 。 。计划两个月学完实际花了三个月, 感触多多,收获多多对 c#语言有了 更进一步的认识,对 oo 的思想有了更 全面的了解。 。 。 下一步在设计模式方面的计划: 巩固并运用设计模式,巩固:把大话 设计模式 , 设计模式 , 设计模式 可复用的面向对象基础 , 敏捷软件 开发:原则、模式与实践这些书再结 合起来系统的看一看,当然还会去买一 些我手头上没有的关于设计模式的书; 运用:部门前几天也提倡用 c#来改版 vb 程序,我想这是一个很好的平台,正 好有机会把理论的东西在实际中应用, -精选财经经济类资料- -最新财经经济资料-感谢阅读- 3 理论加实际唯一的学习方法。 。 。 下面对各个模式再简单总结一下: 1、创建型模式: singleton:解决的是实例化对象 的个数的问题,比如抽象工厂中的工厂、 对象池等,除了 singleton 之外,其他创 建型模式解决的都是 new 所带来的耦 合关系。 abstract factory:创建一系列相互 依赖对象,并能在运行时改变系列。 factory method:创建单个对象, 在 abstract factory 有使用到。 prototype :通过拷贝原型来创建 新的对象。 factory method,abstract factory, builder 都需要一个额外的工厂类来负责 实例化“一边对象 ”,而 prototype 则是通 过原型来克隆“ 易变对象”。 如果遇到“ 易变类”,起初的设计 通常从 factory method 开始,当遇到更 多的复杂变化时,再考虑重构为其他三 -精选财经经济类资料- -最新财经经济资料-感谢阅读- 4 种工厂模式。 2、结构性模式 adapter:注重转换接口,将不吻 合的接口适配对象,用于旧代码复用、 类库迁移等。 bridge:注重实现抽象和实现的 分离,支持对象多维度的变化。 composite :注重同意接口,将 “一对多”的关系转化为“一对一”的关系, 屏蔽对象容器内部实现结构,实现对象 和对象容器使用的一致性。 decorator :注重稳定接口,在此 前提下为对象扩展功能,实现对象功能 的扩展,避免子类膨胀。 facade:注重简化接口,屏蔽各 子系统的复杂性,提供更高层接口供客 户访问。 flyweight :注重保留接口,在内 部使用共享技术对对象存储进行优化。 proxy :注重假借接口,通过增 加间接代理,实现更多控制,屏蔽复杂 性。 -精选财经经济类资料- -最新财经经济资料-感谢阅读- 5 3 、行为型模式 template method:封装算法结构, 定义算法骨架,支持算法子步骤变化。 strategy :注重封装算法,支持算 法的变化,通过封装一系列算法,从而 可以随时独立于客户替换算法。 state :注重封装与状态相关的行 为,支持状态的变化,通过封装对象状 态,从而在其内部状态改变时改变它的 行为。 memento :注重封装对象状态变 化,支持状态保存、恢复。 mediator:注重封装对象间的交 互,通过封装一系列对象之间的复杂交 互,使他们不需要显式相互引用,实现 解耦。 chain of responsibility:注重封装 对象责任,支持责任的变化,通过动态 构建职责链,实现事务处理。 command :注重将请求封装为对 象,支持请求的变化,通过将一组行为 抽象为对象,实现行为请求者和行为实 -精选财经经济类资料- -最新财经经济资料-感谢阅读- 6 现者之间的解耦。 iterator:注重封装特定领域变化, 支持集合的变化,屏蔽集合对象内部复 杂结构,提供客户程序对它的透明遍历。 interpreter:注重封装特定领域变 化,支持领域问题的频繁变化,将特定 领域的问题表达为某种语法规则下的句 子,然后构建一个解释器来解释这样的 句子,从而达到解决问题的目的。 observer:注重封装对象通知, 支持通信对象的变化,实现对象状态改 变,通知依赖它的对象并更新。 visitor:注重封装对象操作变化, 支持在运行时为类结构添加新的操作, 在类层次结构中,在不改变各类的前提 下定义作用于这些类实例的新的操作。 正确对待模式: 设计模式建立在对系统变化点的 基础上进行,哪里有变化,哪里就应用 设计模式。 设计模式应该以演化的方式来获 -精选财经经济类资料- -最新财经经济资料-感谢阅读- 7 得,系统的变化点往往是经过不断演化 才能准确定位。 不能为了模式而模式,设计模式 是一种软件设计的软力量,而非规范标 准,不应夸大设计模式的作用。 设计模式心得体会: 从一开始学习设计模式至今已半 年有余了,第一次接触设计模式是一次 不经意间在网上看到大话设计模式 一书,看了前言了第一章后,就感觉到 其诱惑力对于一个程序员来说,是无比 巨大的。大概是去年十月份的时候,部 门决定成立读书会,系统学习设计模式。 通过学习设计模式,除了学习到 “一些设计模式 ”,还让我进一步熟悉、 巩固了面向对象思想,进一步熟悉了 c# 语言。 。 。我曾多次设想,我们如果引入 面向对象思想,并结合设计模式来重写 或改善我们的系统,那么我们的系统将 会像目前一样需要那么多人来维护吗? 大话设计模式一书其实是对 -精选财经经济类资料- -最新财经经济资料-感谢阅读- 8 gof 的 设计模式可复用面向对象 软件的基础一书的“ 翻译 ”,让人更容 易理解,用通俗易懂的语言阐述软件设 计过程中的一些“ 模式” ,在某种特定环 境下,用最好的设计方法达到我们的目 的,或许其方法有很多很多,但是寻找 到最好的方法却不是件容易的事,设计 模式是对前人的设计经验的一个总结, 告诉我们在某种特定的环境下,这样的 设计师最好的,学习设计模式有助于我 们在设计软件的过程中少走很多弯路。 我对 gof 的 23 个设计模式虽然 都有看过,但是只有理解,实现,应用 及思考之后,才能真正体会其精妙之处, 至今体会较深的有以下几个模式:1. strategy封装系列 “算法”,让它们之 间可以相互替换, “算法” 并不是单指数 据结构中的算法,在实践中,它几乎可 以封装任何类型的规则,这使得策略模 式的运用极其广泛;2. template method 有人说是用的做多的模式,只要有 抽象类的地方,都可以看到这个模式, -精选财经经济类资料- -最新财经经济资料-感谢阅读- 9 它通过把不变行为移到父类中去,去除 子类中的重复代码,从而提供了一个很 好的代码复用平台;3. facade提供 了对基础架构的统一访问,减少复杂性, 在 web 编程者中的三层架构,就是此思 想,每一层都封装好一部分功能,提供 给上一层统一的方法调用,整个 framework 体系就是 facade 模式的封装, 随着 1.0 升级到 3.5,越来越多复杂的高 级功能被封装,可以说 facade 无处不在; 4. abstract factory提供一个创建一系 列相关或相互依赖对象的接口,而无需 指定它们具体的类,咋一看,太抽象了, 说个例子,在三层架构中,bll 层对 dal 层的调用会直接用到 dal 层中的类,如 果 dal 层是分别对 sql server,oracle 的 访问,bll 层需要根据实际情况决定实 例化哪一个 dal 层中的类,我们又希望 在两种 dal 层切换时,bll 层和 ui 层都 不做改变,那么可在 bll 层和 dal 层中增 加接口层和抽象工厂,让它来实例化 dal 层中的实例;5. singleton确保一 -精选财经经济类资料- -最新财经经济资料-感谢阅读- 10 个类仅有一个实例,并提供一个访问它 的全局访问点,如单件窗体,点一下 menu,弹出一个窗体,在关闭这个新窗 体之前,再次点击该 menu,不会再次 出现同样的弹出窗体。 。 。篇幅有限,其 他模式或多或少都有点感觉。 最后,引用设计模式解析书 中的一句话:设计模式体现的是一种思 想,而思想是指导行为的一切,理解和 掌握了设计模式,并不是说记住了 23 种设计场景和解决策略,实际接受的是 一种思想的熏陶和洗礼,等这种思想融 入到了你的思想中后,你就会不自觉地 使用这种思想去进行你的设计和开发, 这一切才是最重要的。 以前没有接触过设计模式,那其 实也是因为以前没有真正经历过面向对 象的设计。这样的情况在我经历了本科 毕业设计,并且遵循我们实验室的一位 师兄的建议看了设计模式精解后有 了根本的改变,我开始意识到一个程序 员和一个设计者的区别,我也开始意识 -精选财经经济类资料- -最新财经经济资料-感谢阅读- 11 到在同学眼中“ 编程很强”的我只是 至少现在只是一个程序员。 我做的本科毕设是基于 java- swing 设计一个类似绘图程序的系统, 最终我设计出来的程序,在别人看来很 不错。但是只有我自己知道,我的设计 其实是糟糕了,最明显的就是低内聚、 紧耦合,那些代码甚至连我都不愿意去 维护。于是当我看到书中的一句话: “几乎百分之百的软件都不是由它最初 的设计者去维护的?”,更让我感到这 次设计的失败。 设计模式精解的出现可以说 让我眼前一亮,这也是第一本让我想再 读一次的书。究竟什么是模式?书中的 解释是“模式是针对特定场景下的特定 问题的可重复、可表达的解决方案”, 除此之外模式还必须有三个要点: 1可重复性。解决方案应该对 应于外部的场景。 2可传授性。一个解决方案应 该可以移植到问题的不同情况中。 -精选财经经济类资料- -最新财经经济资料-感谢阅读- 12 3用来表示这个模式的名称。 模式不限于面向对象,不限于设 计阶段,甚至不限于软件开发领域。设 计模式只是模式的一个子集。 在前言中作者说在他对现有的设 计模式的指导原则及策略都非常清楚之 后,这些原则帮助他决定开始过一种为 人解惑的生活?虽然我第一次看到“为 人解惑的生活” 这个词语,但是我立刻 感到这也是我所向往的一种生活。 书中介绍了软件开发过程中的三 个不同视角: 1概念视角。这个视角“展现了 问题领域中的概念?一个概念模型可以 在对实现软件有很少或毫无注意的情况 下画出?” 2规格视角。 “只看软件的接口, 而不看实现” 3实现视角。就是现在的我唯 一使用的视角置身于代码之中。 看到这里我更加肯定了这本所讲 的是我从来没有注意过的东西,但是我 -精选财经经济类资料- -最新财经经济资料-感谢阅读- 13 对这些东西应该非常感兴趣,而我也深 深地感慨:我为什么现在才看到这本书。 在书中作者回顾了它从前的一个 设计,通过不断修改得出的优秀设计, 逐步展现出设计模式的强大威力。书中 有句话很经典如果你只有一把锤子, 那你会发现所有的东西都像钉子。意思 是说如果你只知道一种解决问题的办法, 那你只会想用这个方法解决所有问题。 我觉得这很像现在的我,在面向对象的 设计中我几乎只会“ 类继承 ”,结果是我 的毕设过高的继承体系导致紧耦合、 低内聚。 当我学到书中介绍的第一个设计 模式:facade 模式,我立刻对这些设计 模式产生了浓厚的兴趣,我发现自己像 一个“完美主义者 ”,在试图追求结构完 美的程序代码,而设计模式给我提供了 这样的可能,尽管我仅仅看到了它的一 点点部分。设计模式就像一个漂亮的女 孩,而且你知道她不仅外表很漂亮,也 -精选财经经济类资料- -最新财经经济资料-感谢阅读- 14 很有内涵,那你想做的事情还有什么呢? 当然是尽快接近并了解她? 刚学几天就有一些浅薄的心得了。 在学过的几种设计模式中,每一 种设计模式都会有一种具体的应用场景, 每一种场景描述的都是一种需求变化。 设计模式就是用来解决这些变化的。 只要客户有新的需求,你的程序 就要发生改变,不管你用什么方法,这 个改变是避免不了的。关键是你如何是 解决这种变化!设计模式就是寻求一种 通用的较好的方法来解决这种变化而不 是避免这种变化,并不是你应用了设计 模式,你的系统就不会发生变化了。 面向对象的编程有三大机制,我 个人认为,设计模式很好的利用了其中 的“封装与多态 ”,比如工厂方法模式和 生成器模式。 “封装” 的意义不仅仅在于 封装代码的实现,更重要的是“封装” 系 统中变化的部分。设计模式回答了怎么 样去“封装”这种变化。 -精选财经经济类资料- -最新财经经济资料-感谢阅读- 15 在一个系统中,总会有一部分经 常发生变化,相对的,也总有一个部分 是改变频率较低的,我们可以在某种范 围内将其理解为不改变的部分。设计模 式要作的事情就是把“ 变化 ”的部分封装 起来,实现将“ 变化” 的部分与 “不变化” 的部隔离,这样, “变化” 的部分在发生 变化时,不会影响到“ 不改变 ”的部分。 如果你也学过设计模式,那你可能跟我 有同感。设计模式解决变化的途径可以 概括为两步:一是转移变化,二是转化 变化。 首先是“ 转移变化”。 简单的说就是把 a 部分的变化转 移到 b 部分,请 b 去变化,让 a 不发生 变化。在程序中就是将变化从调用者转 移到被调用者。比如,你有一个类 scene,这个类用于显现一种风格的游戏 场景,调用程序实例化这个类并使用它。 如果有一天,需求改变了,当前风格的 游戏场景颜色太冷了,我需要改变当前 场景的颜色。这个时候你要决定,要让 -精选财经经济类资料- -最新财经经济资料-感谢阅读- 16 谁去发生变化?是让客户调用程序去改 变 scene 类的颜色属性呢,还是让你的 类 scene 发生变化?设计模式回答的是, 请 scene 发生变化,调用者不发生变化。 为什么要这样回答,因为这个时 候,你的系统可能已经交付用户了,如 果让调用者发生变化,那整个系统都要 发生变化。 然后是“ 转化变化”。 确定了要改动 scene,那要怎么 样去改 scene 呢?直接改吗?当然不行, 如果是这样改,那还不如让调用者去设 置 scene 的某个属性呢,反正都要重新 部署。那要怎么改?“ 扩展 ”,把这种 “改变”转化为“扩展”。你不是要另外一 种 scene 吗?那我重新为你设计一 个 sence 并生成.dll 交付你,然后让现有 的程序去调用这个 scene。当然,这时 可能需要调用者稍微的发生一下变化, 比如开始调用者是直接调用 scene 来呈 -精选财经经济类资料- -最新财经经济资料-感谢阅读- 17 现场景的,现在将其改为根据配置文件 来决定要呈现那种 scene。但是如果之 前你已经考虑到这个问题了,那调用者 是不需要发生任何变化的,因为调用者 是根据配置来决定所呈现的场景,需求 发生弯化,只需要改变配置文件,把调 用者与新添的 scene 关联即可,这样一 来, “改动”就变为“扩展”,其带来的好处 也是显而易见的,这也就是所谓的“开 闭”原则。 以上文字完全是本人理解,随着 不断的学习,我想这么文章估计要被改 好多次,这是一个学习的过程。理解错 了、写错了都不要紧,关键是你怎么样 去面对这种错误!是拒绝承认错误还是 正视错误?这也是设计模式回答的问题。 洋思模式心得体会 从学习杜郎口到学习洋思已经好 几年了,每年每学期都要进行大规模的 听课活动,可谓轰轰烈烈,但学习了好 几年时间,我心中仍然一塌糊涂,一知 -精选财经经济类资料- -最新财经经济资料-感谢阅读- 18 半解,难以灵活运用,尝试着运用时, 也是提襟见肘,顾此失彼。所以成功的 经验很少,只能有一点粗略的感受。 我觉得目标设计尽量的要简洁明 了,通俗易懂,要让绝大多数学生能够 完成,如果太难或过于简单,都不利于 学生的学习。目标设计应控制在 1-3 条为宜,如果目标太多,一节课根本无 法完成,那就白设计了,从学生的角度 来说,当看到很多的目标时,心中会产 生恐惧和排斥情绪,不利于学习。 由于条件限制,当堂训练时只能 采用课后练习和配套练习,缺少灵活性, 对于在电子白板上做练习题,我总觉得 效果不太好,因为一道题目看过后,印 象不深,只有亲手做过,才能记忆深刻。 其它环节,我正在努力尝试、探 索。 教学模式心得体会 近几年,我们在校领导的带领下, 实施了有本校特色的四大模块,八大环 -精选财经经济类资料- -最新财经经济资料-感谢阅读- 19 节的课堂教学模式。通过我们几年来的 努力专研,现在,我们都可以很流畅的 把我校的教学模式运用到我们的课堂教 学中了,当然,在这几年的专研中,我 也有了自己的体会,现在,我就谈谈我 个人的一些看法。 一、改变旧观念,接受新模式 对于一个新的事物,需要通过不 断地学习去了解它,新的教学模式也是 这样。这学期,学校组织我们进行了多 次学习,深入了解新模式的内涵、原则 及实施细则,并组织我们通过数多次的 教学研讨课,让我们真正了解这种模式 的操作方法。不管是讲座还是听课教研, 我都积极参加,积极与同行进行研究, 认识到了新模式的确有助于培养学生自 主学习的能力,有助于培养学生的合作 意识,有助于学生学习能力的提高,有 助于切实提高课堂效率。于是,我就积 极在自己的课堂上进行尝试,努力实现 学生主体、教师主导的高效课堂。 二、把课堂还给学生 -精选财经经济类资料- -最新财经经济资料-感谢阅读- 20 每节课上,我都不断地提醒自己: “要放手,还给学生更多的学习时间。 学生会的,教师不讲;学生能说出来的, 教师不说;学生通过谈论能解决的,就 让学生讨论解决。 ”有了这样的意识,课 上,学生活动的机会多了,学生读书的 时间有了,学生合作的机会有了,学生 自主学习、独立解决问题的能力提高了。 课上,我只挑关键性的问题、共性问题 组织教学,充分发挥激励评价的作用, 让学生尽情地 展示自己。这样,学生的学习热 情高涨,谁都想表现自己,谁都想得到 大家的认可,学习效果有了提高。 三、把课前的准备做充分 每节课的教学,都需要教师事先 的精心准备。我们的教学模式更是如此, 哪怕就是指导学生怎样预习。我刚开始 带的学生第一次接触预习,学生不知道 该怎样下手,所以,手把手地教给方法 就显得尤为重要。我为了让学生学会预 习,我不怕耽误课堂时间,亲自在课堂 -精选财经经济类资料- -最新财经经济资料-感谢阅读- 21 上对学生预习的每一步进行指导,比如, 我告诉学生要通过自己拼读音标来学会 读单词,要通过英汉互译来熟练掌握单 词。我还要亲自在课堂上指导学生如何 写预习笔记,如此反复,虽然学生的预 习还是不能完全放手,但是,看到相当 一部分学生已经开始自主地预习下一单 元时,我还是感到很欣慰,毕竟小进步 也比原地踏步强。 针对这几年的英语教学,我也有 点自己的看法: 一、靠持续不断的语言知识,而 不是“玩”来培养学生持久的兴趣初中英 语教学是要重视培养兴趣,但单靠唱歌 游戏不能培养学生持久的兴趣。新鲜劲 儿一过,孩子们就会厌倦。所以,唱歌 游戏应该作为初中学生学习英语语言知 识、技能的一些手段,而不是培养兴趣 的手段。我们可以采用多种手段帮助学 生在记忆力强的时期多记单词,多学习 语言规则,并尽可能多创造模仿的机会, 提高学生的语音和语调。在英语学习中, -精选财经经济类资料- -最新财经经济资料-感谢阅读- 22 听、说、读、写、译五种能力是可以互 补的。真正做到听说先行,读写跟上。 光听说不读写,很难收到高效。只靠模 仿不培养学习能力,也难减轻学习负担。 所以初

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论