- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
03--第三章 设计模式简介
体会设计模式的美妙 体会设计模式的美妙 这样,只需要输入运算符号,工厂就实例化出合适的对象,通过多态,动态调用相应的子类方法实现了计算的结果。 体会设计模式的美妙 体会设计模式的美妙 界面的实现就是这样的代码,不管你是控制台程序,Windows程序,Web程序,PDA或手机程序,都可以用这段代码来实现计算器的功能,当有一天我们需要更改加法运算,我们只需要修改OperationAdd 就可以了。 想一下,如果需要增加各种复杂运算,比如平方根,立方根,自然对数,正弦余弦等,我们该如何做? 编程是一门技术,更加是一门艺术,不能只满足于写完代码运行结果正确就完事,时常考虑如何让代码更加简炼,更加容易维护,容易扩展和复用,只有这样才可以是真的提高。写出优雅的代码真的是一件很爽的事情。不过学无止境,其实这才是理解面向对象的开始。 推荐几本好书 * * * * 第三章 设计模式简介 什么是设计模式? 设计模式的作用是什么? 有哪些常用的设计模式? 怎么使用设计模式? 3.1 什么是设计模式 我们平时大多数的工作过程是源于已有的经验 经验是以往教训的总结 经验可以指导我们不重复犯同样的错误 经验对于一个程序员来说尤为重要 Christopher Alexander(伯克利分校的建筑学教授)的定义: 每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。 设计模式描述了软件设计过程中某一类常见问题的一般性的解决方案。--经验性的好的方案 面向对象设计模式描述了面向对象设计过程中、特定场景下、类与相互通信的对象之间常见的组织关系。 3.1 什么是设计模式 GoF?? 设计模式四人组 (“四人帮”,又称Gang of Four,即Erich Gamma, Richard Helm, Ralph Johnson John Vlissides四人)的《设计模式》,原名《Design Patterns: Elements of Reusable Object-Oriented Software》(1995年出版,出版社:Addison Wesly Longman.Inc),第一次将设计模式提升到理论高度,并将之规范化。该书提出了23种基本设计模式,被称为经典的GoF 23种设计模式。 3.1 什么是设计模式 GoF 23种设计模式 历史性著作《设计模式:可复用面向对象软件的基础》一书中描述了23种经典面向对象设计模式,创立了模式在软件设计中的地位。 由于《设计模式:可复用面向对象软件的基础》一书确定了设计模式的地位,人们通常所说的设计模式隐含地表示“面向对象设计模式”。但这并不意味“设计模式”就等于“面向对象设计模式”。除了“面向对象设计模式”外,还有其他设计模式。除了GoF 23种设计模式外,还有更多的面向对象设计模式。 GoF 23种设计模式是学习面向对象设计模式的起点,而非终点;设计模式还在不断的更新中…… 3.2 设计模式与面向对象 面向对象设计模式解决的是“类与相互通信的对象之间的组织关系”,包括它们的角色、职责、协作方式几个方面。 面向对象设计模式是“好的面向对象设计”,所谓“好的面向对象设计”是那些可以满足“应对变化,提高复用”的设计。 面向对象设计模式描述的是软件设计,因此它是独立于编程语言的。 面向对象设计模式不像算法技巧,可以照搬照用,它是建立在对“面向对象”纯熟、深入的理解的基础上的经验性知识。掌握面向对象设计模式的前提是首先掌握“面向对象”! 熟练使用设计模式的前提:对OO的理解+对问题领域的理解 3.3 编程语言与面向对象 各种面向对象编程语言相互有别,但都能看到它们对面向对象三大机制的支持,即:“封装、继承、多态” 封装,隐藏内部实现 继承,复用现有代码,扩展已有的行为 多态,改写已有的行为 使用面向对象编程语言(如C#或Java),可以推动程序员以面向对象的思维来思考软件设计结构,从而强化面向对象的编程范式。 3.3 编程语言与面向对象 但是,面向对象程序设计语言(OOPL)并非面向对象的全部 通过面向对象编程语言(OOPL)认识到的面向对象,并不是面向对象的全部,甚至只是浅陋的面向对象。 OOPL的三大机制“封装、继承、多态”可以表达面向对象的所有概念,但这三大机制本身并没有刻画出面向对象的核心精神。换言之,既可以用这三大机制做出“好的面向对象设计”,也可以用这三大机制做出“差的面向对象设计”。不是使用了面向对象的语言(例如C#或Java),就实现了面向对象的设计与开发!因此我们不能依赖编程语言的面向对象机制,来掌握面向对象。 OOPL没有回答面向对象的根本性问题——我们为什么要使用面向对象?我们应该怎样使用三大机制来实现
文档评论(0)