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

下载本文档

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

文档简介

设计模式心得体会 7月初的一个周末准确的说应该是7月1号周六在网上看到一本大话设计模式的书而且看到很多很好的评论于是乎下载了电子书看看一下子看了几章之后对设计模式有了个了解于是继续上网搜些其他资料进一步了解设计模式最终结论:设计模式是个好东西具体好一两句话是无法概括的也是从那天起我就决定学习设计模式于是就看大话设计模式至七月十多号大概看了一百多页后感觉有点难有点看不下去的感觉于是上网找其他的好方法无意间发现了李建忠老师的c设计模式纵横谈系列讲座微软的webcast课程主要讲解gof的23个设计模式每个一讲加上一头一尾共25讲试听了一节课后感觉很有用于是就抽时间去边听课边看书并在我的博客里写下笔记依赖加深印象二来可以督促我的进度 三个月以来总算把设计模式学完一遍了原计划是两个月学完(一星期三个模式)由于计划两个月学完实际花了三个月感触多多收获多多对c语言有了更进一步的认识对oo的思想有了更全面的了解 下一步在设计模式方面的计划:巩固并运用设计模式巩固:把大话设计模式设计模式设计模式可复用的面向对象基础敏捷软件开发:原则、模式与实践这些书再结合起来系统的看一看当然还会去买一些我手头上没有的关于设计模式的书;运用:部门前几天也提倡用c来改版vb程序我想这是一个很好的平台正好有机会把理论的东西在实际中应用理论加实际唯一的学习方法 下面对各个模式再简单总结一下: 1、创建型模式: singleton:解决的是实例化对象的个数的问题比如抽象工厂中的工厂、对象池等除了singleton之外其他创建型模式解决的都是new所带来的耦合关系 abstractfactory:创建一系列相互依赖对象并能在运行时改变系列 factorymethod:创建单个对象在abstractfactory有使用到 prototype:通过拷贝原型来创建新的对象 factorymethodabstractfactory,builder都需要一个额外的工厂类来负责实例化“一边对象”而prototype则是通过原型(一个特殊的工厂类)来克隆“易变对象” 如果遇到“易变类”起初的设计通常从factorymethod开始当遇到更多的复杂变化时再考虑重构为其他三种工厂模式(factorymethodabstractfactory,builder) 2、结构性模式 adapter:注重转换接口将不吻合的接口适配对象用于旧代码复用、类库迁移等 bridge:注重实现抽象和实现的分离支持对象多维度的变化 posite:注重同意接口将“一对多”的关系转化为“一对一”的关系屏蔽对象容器内部实现结构实现对象和对象容器使用的一致性 decorator:注重稳定接口在此前提下为对象扩展功能实现对象功能的扩展避免子类膨胀 facade:注重简化接口屏蔽各子系统的复杂性提供更高层接口供客户访问 flyweight:注重保留接口在内部使用共享技术对对象存储进行优化(通过共享大量细粒度对象提供系统性能) proxy:注重假借接口通过增加间接代理实现更多控制屏蔽复杂性 3、行为型模式 templatemethod:封装算法结构定义算法骨架支持算法子步骤变化 strategy:注重封装算法支持算法的变化通过封装一系列算法从而可以随时独立于客户替换算法 state:注重封装与状态相关的行为支持状态的变化通过封装对象状态从而在其内部状态改变时改变它的行为 memento:注重封装对象状态变化支持状态保存、恢复 mediator:注重封装对象间的交互通过封装一系列对象之间的复杂交互使他们不需要显式相互引用实现解耦 chainofresponsibility:注重封装对象责任支持责任的变化通过动态构建职责链实现事务处理 mand:注重将请求封装为对象支持请求的变化通过将一组行为抽象为对象实现行为请求者和行为实现者之间的解耦 iterator:注重封装特定领域变化支持集合的变化屏蔽集合对象内部复杂结构提供客户程序对它的透明遍历 interpreter:注重封装特定领域变化支持领域问题的频繁变化将特定领域的问题表达为某种语法规则下的句子然后构建一个解释器来解释这样的句子从而达到解决问题的目的 observer:注重封装对象通知支持通信对象的变化实现对象状态改变通知依赖它的对象并更新 visitor:注重封装对象操作变化支持在运行时为类结构添加新的操作在类层次结构中在不改变各类的前提下定义作用于这些类实例的新的操作 正确对待模式: 设计模式建立在对系统变化点的基础上进行里有变化里就应用设计模式 设计模式应该以演化的方式来获得系统的变化点往往是经过不断演化才能准确定位 不能为了模式而模式设计模式是一种软件设计的软力量而非规范标准不应夸大设计模式的作用 设计模式心得体会(2): 从一开始学习设计模式至今已半年有余了第一次接触设计模式是一次不经意间在网上看到大话设计模式一书看了前言了第一章后就感觉到其诱惑力对于一个程序员来说是无比巨大的大概是去年十月份的时候部门决定成立读书会系统学习设计模式 通过学习设计模式除了学习到“一些设计模式”还让我进一步熟悉、巩固了面向对象思想进一步熟悉了c语言我曾多次设想我们如果引入面向对象思想并结合设计模式来重写或改善我们的系统(必须重写虽说设计模式只是一种思想语言只是实现而已但是选择一门好的语言无疑也是非常重要的而vb6在面向对象方面却有很大欠缺甚至不具备其条件)那么我们的系统将会像目前一样需要那么多人来维护 大话设计模式一书其实是对gof的设计模式可复用面向对象软件的基础一书的“翻译”让人更容易理解用通俗易懂的语言阐述软件设计过程中的一些“模式”在某种特定环境下用最好的设计方法(代码高内聚低耦合使其有良好的可扩展性和可维护性)达到我们的目的或许其方法有很多很多但是寻找到最好的方法却不是件容易的事设计模式是对前人的设计经验的一个总结告诉我们在某种特定的环境下这样的设计师最好的学习设计模式有助于我们在设计软件的过程中少走很多弯路 我对gof的23个设计模式虽然都有看过但是只有理解实现应用及思考之后才能真正体会其精妙之处至今体会较深的有以下几个模式:1.strategy封装系列“算法”让它们之间可以相互替换“算法”并不是单指数据结构中的算法在实践中它几乎可以封装任何类型的规则这使得策略模式的运用极其广泛;2.templatemethod有人说是用的做多的模式只要有抽象类的地方都可以看到这个模式它通过把不变行为移到父类中去去除子类中的重复代码从而提供了一个很好的代码复用平台;3.facade提供了对基础架构的统一访问减少复杂性在web编程者中的三层架构就是此思想每一层都封装好一部分功能提供给上一层统一的方法调用整个framework体系就是facade模式的封装随着1.0升级到3.5越来越多复杂的高级功能被封装可以说facade无处不在;4.abstractfactory提供一个创建一系列相关或相互依赖对象的接口而无需指定它们具体的类咋一看太抽象了说个例子在三层架构中bll层对dal层的调用会直接用到dal层中的类如果dal层是分别对sqlserveroracle的访问bll层需要根据实际情况决定实例化一个dal层中的类我们又希望在两种dal层切换时bll层和ui层都不做改变那么可在bll层和dal层中增加接口层(体现了“抽象”的精神或者说是“面向接口编程”的最佳体现)和抽象工厂(dalfactroy)让它来实例化dal层中的实例;5.singleton确保一个类仅有一个实例并提供一个访问它的全局访问点如单件窗体点一下menu弹出一个窗体(实例)在关闭这个新窗体之前再次点击该menu不会再次出现同样的弹出窗体(实例)篇幅有限其

温馨提示

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

评论

0/150

提交评论