- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
设计模式心得体会
第 PAGE \* Arabic \* MERGEFORMAT 20 页
设计模式心得体会
7月初的一个周末,准确的说应该是7月1号周六,在网上看到一本《大话设计模式》的书,而且看到很多很好的评论,于是乎,下载了电子书看看,一下子看了几章之后,对设计模式有了个了解,于是继续上网搜些其他资料,进一步了解设计模式。。。最终结论:设计模式是个好东西,具体怎么好,一两句话是无法概括的,也是从那天起,我就决定学习设计模式,于是就看《大话设计模式》,至七月十多号,大概看了一百多页后,感觉有点难,有点看不下去的感觉,于是上网找其他的好方法,无意间发现了李建忠老师的《c#设计模式纵横谈》系列讲座,微软的web cast课程,主要讲解gof的23个设计模式,每个一讲,加上一头一尾,共25讲,试听了一节课后,感觉很有用,于是就抽时间去边听课边看书,并在我的博客里写下笔记,依赖加深印象,二来可以督促我的进度。。。
三个月以来,总算把设计模式学完一遍了,原计划是两个月学完(一星期三个模式),由于。。。计划两个月学完实际花了三个月,感触多多,收获多多——对c#语言有了更进一步的认识,对oo的思想有了更全面的了解。。。
下一步在设计模式方面的计划:巩固并运用设计模式,巩固:把《大话设计模式》,《设计模式》,《设计模式——可复用的面向对象基础》,《敏捷软件开发:原则、模式与实践》这些书再结合起来系统的看一看,当然还会去买一些我手头上没有的关于设计模式的
书;运用:部门前几天也提倡用c#来改版vb程序,我想这是一个很好的平台,正好有机会把理论的东西在实际中应用,理论加实际——唯一的学习方法。。。
下面对各个模式再简单总结一下:
1、创建型模式:
singleton:解决的是实例化对象的个数的问题,比如抽象工厂中的工厂、对象池等,除了singleton之外,其他创建型模式解决的都是 new
所带来的耦合关系。
abstract factory:创建一系列相互依赖对象,并能在运行时改变系列。
factory method:创建单个对象,在abstract factory有使用到。
prototype:通过拷贝原型来创建新的对象。
factory method,abstract factory, builder都需要一个额外的工厂类来负责实例化“一边对象”,而prototype则是通过原型(一个特殊的工厂类)来克隆“易变对象”。
如果遇到“易变类”,起初的设计通常从factory method开始,当遇到更多的复杂变化时,再考虑重构为其他三种工厂模式(factory
method,abstract factory, builder)。
2、结构性模式
adapter:注重转换接口,将不吻合的接口适配对象,用于旧代码复用、类库迁移等。
bridge:注重实现抽象和实现的分离,支持对象多维度的变化。
posite:注重同意接口,将“一对多”的关系转化为“一对一”的关系,屏蔽对象容器内部实现结构,实现对象和对象容器使用的一致性。
decorator:注重稳定接口,在此前提下为对象扩展功能,实现对象功能的扩展,避免子类膨胀。
facade:注重简化接口,屏蔽各子系统的复杂性,提供更高层接口供客户访问。
flyweight:注重保留接口,在内部使用共享技术对对象存储进行优化(通过共享大量细粒度对象,提供系统性能)。
proxy:注重假借接口,通过增加间接代理,实现更多控制,屏蔽复杂性。
3 、行为型模式
template method:封装算法结构,定义算法骨架,支持算法子步骤变化。
strategy:注重封装算法,支持算法的变化,通过封装一系列算法,从而可以随时独立于客户替换算法。
state:注重封装与状态相关的行为,支持状态的变化,通过封装对象状态,从而在其内部状态改变时改变它的行为。
memento:注重封装对象状态变化,支持状态保存、恢复。
mediator:注重封装对象间的交互,通过封装一系列对象之间的复杂交互,使他们不需要显式相互引用,实现解耦。
chain of responsibility:注重封装对象责任,支持责任的变化,通过动态构建职责链,实现事务处理。
mand:注重将请求封装为对象,支持请求的变化,通过将一组行为抽象为对象,实现行为请求者和行为实现者之间的解耦。
iterator:注重封装特定领域变化,支持集合的变化,屏蔽集合对象内部复杂结构,提供客户程序对它的透明遍历。
interpreter:注重封装特定领域变化,支持领域问题的频繁变化,将特定领域的问题表达为某种语法规则下的句子,然后构建一个解释器来解释这样的句子,从而达到解决问题的目的。
observ
您可能关注的文档
最近下载
- 手拉手 心连心 2024——2025学年湘教版初中美术七年级上册.pptx VIP
- 人教版2023-2024学年六年级上册数学 第五单元 圆(学生版)-(复习讲义)单元速记·巧练.docx VIP
- 《凝聚的力量》精品课件.pptx VIP
- BridgeConex使用帮助.pdf
- 附件教育部理工科非物理类专业大学物理课程教学基本要求A类要求.doc
- 建筑十大新技术应用总结.docx VIP
- 中药制剂技术 汤剂认知 汤剂认知.ppt
- 第一单元+第一课+我们走在大路上 课件2024——2025学年+湘美版(2024)初中美术七年级上册.pptx VIP
- 第二单元第3课《创意改善生活》课件++2024—2025学年湘美版(2024)初中美术七年级上册.pptx VIP
- 龟兔赛跑儿童绘本故事PPT课件.pptx VIP
文档评论(0)