- 1、本文档共88页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
从菜鸟到大侠:设计原则与设计模式
Object-Oriented Design
钟悦
2009年2月
Key Words:OOD,Design Pattern
目录
0 Preface 5
1 Basic Concepts 6
1.1 Machine-oriented VS. Problem-oriented 6
1.2 Function-oriented VS. Object-oriented 6
1.3 Freezing Requirement? 7
1.4 No Silver Bullet 8
1.5 Refactoring 8
1.6 Abstraction 8
1.7 Encapsulation 8
1.8 Hierarchy/Inheritance 9
1.9 Polymorphism 9
1.10 class 9
1.11 object 9
1.12 abstract class 9
1.13 interface 9
1.14 signature 10
1.15 type 10
1.16 class VS. type 10
1.17 Overloading VS. Overriding 10
1.18 Dynamic binding VS. Static binding 11
1.19 Passed by Value VS. Passed by Reference 11
1.20 Replace Conditional with Polimorphism 11
2 Design Principles 12
2.1 SRP 12
2.2 OCP 13
2.3 DIP 15
2.4 CARP 17
Composite VS. Inheritance 17
2.5 LSP 18
Refactoring VS. LSP 19
2.6 ISP 20
2.7 LoD 21
3 Design Patterns 22
3.1 Creational Pattern 23
3.1.1 Abstract Factory Method/Kit 24
3.1.2 Builder 26
3.1.3 Factory Method 28
Simple Factory 30
3.1.4 Prototype 31
3.1.5 Singleton 34
Monostate 36
Multiton 36
3.2 Structural Pattern 38
3.2.1 Adaptor/Wrapper 39
3.2.2 Bridge 41
3.2.3 Composite/Handle/Body 43
3.2.4 Decorator/Wapper 45
Decorator VS. Adaptor 47
3.2.5 Facade 48
3.2.6 Flyweight 50
3.2.7 Proxy/Surrogate 52
3.3 Behavioral Pattern 54
3.3.1 Chain of Responsibility 55
3.3.2 Command/Action/Transaction 57
3.3.3 Interpreter 59
3.3.4 Iterator/Cursor 61
3.3.5 Mediator 63
3.3.6 Memento/Token 65
3.3.7 Observer/Dependents/Publish-Subscribe 67
MVC 69
3.3.8 State/Objects for State 70
Immutable 71
3.3.9 Strategy/Policy 74
State VS. Strategy 76
3.3.10 Template Method 77
3.3.11 Visitor 79
4 Literature Reference 83
Preface
一位夫人打电话给建筑师,说每当火车经过,她睡的床就。 这简直是无稽之谈建筑师回答说,我来看看。 建筑师到达后,夫人建议他躺在床上,体会一下火车经过时的感觉。 建筑师刚上床躺,夫人的丈夫就回来了。他见此情形,便厉声喝问:你躺在我床上干什么?建筑师战战兢兢地回答:我说在等火车,你信吗? 有些话是真的,听很假。
Basic Concepts
多年前,有位很牛的师兄给我做技术培训。他郑重其事地说,所谓解耦,就是在需要解耦的两层之间再加上一个中间层。当时我对此付诸一笑,但现在我对当时的我也付诸一笑。所谓一笑成魔,一笑成佛,不知是否确切?
在编程概念和编程思想上,我们常常以翻越一座山的代价而仅仅是想要捅破一层纸。
“练武不练功,到老一场空。”
——中国谚语
如果可以把设计模式和其他各种设计技巧比喻为武术中的招数和套路的话,我们也不妨把面向对象的基本概念和各种设计原则比
您可能关注的文档
最近下载
- 2021年香薰服务合同.docx
- 《Python与数据分析应用》课件——第10章 数据分析工具Pandas.pptx VIP
- 战争狂人希特勒简介.ppt
- 家庭教育指导师试题库.doc
- -司法鉴定人执业能力评估业务理论知识考试题库(司法鉴定人考试试题及答案解析)-.docx VIP
- 病房急产应急预案演练脚本.docx VIP
- 生产项目准入及预算标准第六册主网修理项目准入及预算标准(预算分册).docx
- 2025新人教版语文七年级下册《第一单元》大单元整体教学设计[2022课标].pdf
- 电子商务文案创意与撰写:直播脚本编写PPT教学课件.pptx
- (高清版)-B-T 30146-2023 安全与韧性 业务连续性管理体系 要求.pdf VIP
文档评论(0)