没有合适的资源?快使用搜索试试~ 我知道了~
首页Design Patterns Explained(设计模式解析英文版)
pdf英文版 357页<br/><br/>1999年第10届效能大奖 本书讲述了作者在学习设计模式过程中所积累的个人经验。很不错的一本书。解释了各个设计模式是如何总结整理出来的,并给出了具体的应用示例。所用的英文语句简单易懂。<br/><br/>【内容简介】<br/>本书讲述了作者在学习设计模式过程中所积累的个人经验。书中包含很多实际的和可应用的实例,教你如何使用模式解决普通的编程问题,以及解释如何利用模式来进行先进的软件设计。本书清晰地演示了模式如何使整个开发过程变得更容易,还解释了面对对象设计的关键原则以及特定模式的概念和优势。通过直观的C++和Java实例,本书阐明了使用模式的原因以及如何使用模式,并解释了模式的实现。 <br/>
资源详情
资源评论
资源推荐
------==Proudly Presented by MODELER==------
xv
Preface
Design patterns and object-oriented programming. They hold such
promise to make your life as a software designer and developer eas-
ier. Their terminology is bandied about every day in the technical
and even the popular press. But it can be hard to learn them, to
become proficient with them, to understand what is really going on.
Perhaps you have been using an object-oriented or object-based
language for years. Have you learned that the true power of objects
is not inheritance but is in “encapsulating behaviors”? Perhaps you
are curious about design patterns and have found the literature a
bit too esoteric and high-falutin. If so, this book is for you.
It is based on years of teaching this material to software developers,
both experienced and new to object orientation. It is based upon
the belief—and our experience—that once you understand the
basic principles and motivations that underlie these concepts, why
they are doing what they do, your learning curve will be incredibly
shorter. And in our discussion of design patterns, you will under-
stand the true mindset of object orientation, which is a necessity
before you can become proficient.
As you read this book, you will gain a solid understanding of the
ten most essential design patterns. You will learn that design pat-
terns do not exist on their own, but are supposed to work in con-
cert with other design patterns to help you create more robust
applications. You will gain enough of a foundation that you will be
able to read the design pattern literature, if you want to, and possi-
bly discover patterns on your own.
Most importantly, you will be better equipped to create flexible and
complete software that is easier to maintain.
preface.fm Page xv Wednesday, June 6, 2001 4:18 PM
xvi Preface
From Object Orientation to Patterns to
True Object Orientation
In many ways, this book is a retelling of my personal experience
learning design patterns. Prior to studying design patterns, I consid-
ered myself to be reasonably expert in object-oriented analysis and
design. My track record had included several fairly impressive
designs and implementations in many industries. I knew C++ and
was beginning to learn Java. The objects in my code were well-
formed and tightly encapsulated. I could design excellent data
abstractions for inheritance hierarchies. I thought I knew object-
orientation.
Now, looking back, I see that I really did not understand the full
capabilities of object-oriented design, even though I was doing
things the way the experts advised. It wasn’t until I began to learn
design patterns that my object-oriented design abilities expanded
and deepened. Knowing design patterns has made me a better
designer, even when I don’t use these patterns directly.
I began studying design patterns in 1996. I was a C++/object-
oriented design mentor at a large aerospace company in the north-
west. Several people asked me to lead a design pattern study group.
That’s where I met my co-author, Jim Trott. In the study group,
several interesting things happened. First, I grew fascinated with
design patterns. I loved being able to compare my designs with the
designs of others who had more experience than I had. I discovered
that I was not taking full advantage of designing to interfaces and
that I didn’t always concern myself with seeing if I could have an
object use another object without knowing the used object’s type. I
noticed that beginners to object-oriented design—those who would
normally be deemed as learning design patterns too early—were
benefiting as much from the study group as the experts were. The
patterns presented examples of excellent object-oriented designs
and illustrated basic object-oriented principles, which helped to
mature their designs more quickly. By the end of the study session,
preface.fm Page xvi Wednesday, June 6, 2001 4:18 PM
Preface xvii
I was convinced that design patterns were the greatest thing to hap-
pen to software design since the invention of object-oriented
design.
However, when I looked at my work at the time, I saw that I was
not incorporating any design patterns into my code.
I just figured I didn’t know enough design patterns yet and needed
to learn more. At the time, I only knew about six of them. Then I
had what could be called an epiphany. I was working on a project
as a mentor in object-oriented design and was asked to create a
high-level design for the project. The leader of the project was
extremely sharp, but was fairly new to object-oriented design.
The problem itself wasn’t that difficult, but it required a great deal
of attention to make sure the code was going to be easy to main-
tain. Literally, after about two minutes of looking at the problem, I
had developed a design based on my normal approach of data
abstraction. Unfortunately, it was very clear this was not going to be
a good design. Data abstraction alone had failed me. I had to find
something better.
Two hours later, after applying every design technique I knew, I
was no better off. My design was essentially the same. What was
most frustrating was that I knew there was a better design. I just
couldn’t see it. Ironically, I also knew of four design patterns that
“lived” in my problem but I couldn’t see how to use them. Here I
was—a supposed expert in object-oriented design—baffled by a
simple problem!
Feeling very frustrated, I took a break and started walking down
the hall to clear my head, telling myself I would not think of the
problem for at least 10 minutes. Well, 30 seconds later, I was think-
ing about it again! But I had gotten an insight that changed my
view of design patterns: rather than using patterns as individual
items, I should use the design patterns together.
preface.fm Page xvii Wednesday, June 6, 2001 4:18 PM
xviii Preface
Patterns are supposed to be sewn together to solve a problem.
I had heard this before, but hadn’t really understood it. Because
patterns in software have been introduced as design patterns, I had
always labored under the assumption that they had mostly to do
with design. My thoughts were that in the design world, the pat-
terns came as pretty much well-formed relationships between
classes. Then, I read Christopher Alexander’s amazing book, The
Timeless Way of Building. I learned that patterns existed at all levels—
analysis, design, and implementation. Alexander discusses using
patterns to help in the understanding of the problem domain (even
in describing it), not in creating the design after the problem
domain is understood.
My mistake had been in trying to create the classes in my problem
domain and then stitch them together to make a final system, a
process which Alexander calls a particularly bad idea. I had never
asked if I had the right classes because they just seemed so right, so
obvious; they were the classes that immediately came to mind as I
started my analysis, the “nouns” in the description of the system
that we had been taught to look for. But I had struggled trying to
piece them together.
When I stepped back and used design patterns and Alexander’s
approach to guide me in the creation of my classes, a far superior
solution unfolded in only a matter of minutes. It was a good design
and we put it into production. I was excited—excited to have
designed a good solution and excited about the power of design
patterns. It was then that I started incorporating design patterns
into my development work and my teaching.
I began to discover that programmers who were new to object-ori-
ented design could learn design patterns, and in doing so, develop a
basic set of object-oriented design skills. It was true for me and it
was true for the students that I was teaching.
preface.fm Page xviii Wednesday, June 6, 2001 4:18 PM
剩余356页未读,继续阅读
Stewart
- 粉丝: 8
- 资源: 19
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- stc12c5a60s2 例程
- Android通过全局变量传递数据
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论4