Jumat, 23 Juli 2010

[X276.Ebook] Free PDF Design Patterns Explained: A New Perspective on Object-Oriented Design, by Alan Shalloway, James Trott

Free PDF Design Patterns Explained: A New Perspective on Object-Oriented Design, by Alan Shalloway, James Trott

Reading guide Design Patterns Explained: A New Perspective On Object-Oriented Design, By Alan Shalloway, James Trott by on-line could be likewise done easily every where you are. It seems that waiting the bus on the shelter, waiting the listing for queue, or various other areas possible. This Design Patterns Explained: A New Perspective On Object-Oriented Design, By Alan Shalloway, James Trott could accompany you because time. It will certainly not make you feel weary. Besides, by doing this will also enhance your life high quality.

Design Patterns Explained: A New Perspective on Object-Oriented Design, by Alan Shalloway, James Trott

Design Patterns Explained: A New Perspective on Object-Oriented Design, by Alan Shalloway, James Trott



Design Patterns Explained: A New Perspective on Object-Oriented Design, by Alan Shalloway, James Trott

Free PDF Design Patterns Explained: A New Perspective on Object-Oriented Design, by Alan Shalloway, James Trott

Design Patterns Explained: A New Perspective On Object-Oriented Design, By Alan Shalloway, James Trott As a matter of fact, book is really a window to the world. Also many people may not such as checking out publications; the books will certainly constantly provide the specific info concerning truth, fiction, experience, experience, politic, faith, and much more. We are below a site that offers compilations of publications greater than guide shop. Why? We give you lots of numbers of link to get guide Design Patterns Explained: A New Perspective On Object-Oriented Design, By Alan Shalloway, James Trott On is as you need this Design Patterns Explained: A New Perspective On Object-Oriented Design, By Alan Shalloway, James Trott You could discover this book easily right here.

To get rid of the trouble, we now give you the technology to download guide Design Patterns Explained: A New Perspective On Object-Oriented Design, By Alan Shalloway, James Trott not in a thick published data. Yeah, reviewing Design Patterns Explained: A New Perspective On Object-Oriented Design, By Alan Shalloway, James Trott by online or getting the soft-file simply to read can be one of the ways to do. You may not really feel that checking out a publication Design Patterns Explained: A New Perspective On Object-Oriented Design, By Alan Shalloway, James Trott will certainly be useful for you. Yet, in some terms, May people effective are those which have reading behavior, included this type of this Design Patterns Explained: A New Perspective On Object-Oriented Design, By Alan Shalloway, James Trott

By soft file of the publication Design Patterns Explained: A New Perspective On Object-Oriented Design, By Alan Shalloway, James Trott to read, you could not should bring the thick prints anywhere you go. At any time you have going to read Design Patterns Explained: A New Perspective On Object-Oriented Design, By Alan Shalloway, James Trott, you could open your device to review this publication Design Patterns Explained: A New Perspective On Object-Oriented Design, By Alan Shalloway, James Trott in soft file system. So easy and also quick! Reading the soft file book Design Patterns Explained: A New Perspective On Object-Oriented Design, By Alan Shalloway, James Trott will provide you easy means to review. It can additionally be faster because you can review your e-book Design Patterns Explained: A New Perspective On Object-Oriented Design, By Alan Shalloway, James Trott all over you desire. This online Design Patterns Explained: A New Perspective On Object-Oriented Design, By Alan Shalloway, James Trott could be a referred e-book that you can delight in the solution of life.

Because e-book Design Patterns Explained: A New Perspective On Object-Oriented Design, By Alan Shalloway, James Trott has great benefits to check out, numerous individuals now expand to have reading behavior. Supported by the developed technology, nowadays, it is not hard to purchase guide Design Patterns Explained: A New Perspective On Object-Oriented Design, By Alan Shalloway, James Trott Also guide is not alreadied existing yet on the market, you to look for in this web site. As exactly what you can discover of this Design Patterns Explained: A New Perspective On Object-Oriented Design, By Alan Shalloway, James Trott It will truly ease you to be the very first one reading this e-book Design Patterns Explained: A New Perspective On Object-Oriented Design, By Alan Shalloway, James Trott and obtain the benefits.

Design Patterns Explained: A New Perspective on Object-Oriented Design, by Alan Shalloway, James Trott

Design patterns offer proven opportunities for creating flexible, reusable software -- but until now, their complexity has prevented most software professionals from taking full advantage of them. Now, there's a simple, gentle introduction to patterns that helps software practitioners gain the benefits -- without the confusion. Unlike many books on patterns, Design Patterns Explained doesn't assume that its readers already have an in-depth understanding of object-oriented design. Rather, it teaches object-oriented design and patterns together, helping developers gain deeper insights into both topics far more quickly. Shalloway and Trott don't just introduce a laundry list of patterns: they explain why each pattern works, the organizing principles upon which the pattern is based, and above all, how the patterns work together in real world object-oriented designs. For all software developers, programmers, architects, and project managers who want to succeed with patterns.

  • Sales Rank: #1740201 in Books
  • Published on: 2001-07-09
  • Original language: English
  • Number of items: 1
  • Dimensions: 9.22" h x .70" w x 7.38" l,
  • Binding: Paperback
  • 368 pages

From the Back Cover

"...I would expect that readers with a basic understanding of object-oriented programming and design would find this book useful, before approaching design patterns completely. Design Patterns Explained complements the existing design patterns texts and may perform a very useful role, fitting between introductory texts such as UML Distilled and the more advanced patterns books." --James Noble

Design Patterns Explained: A New Perspective on Object-Oriented Design draws together the principles of object-oriented programming with the power of design patterns to create an environment for robust and reliable software development. Packed with practical and applicable examples, this book teaches you to solve common programming problems with patterns--and explains the advantages of patterns for modern software design.

Beginning with a complete overview of the fundamentals of patterns, Design Patterns Explained stresses the importance of analysis and design. The authors clearly demonstrate how patterns can facilitate the overall development process. Throughout the book, key object-oriented design principles are explained, along with the concepts and benefits behind specific patterns. With illustrative examples in C++ and Java, the book demystifies the "whys," "why nots," and "hows" of patterns and explains pattern implementation.

Key topics covered include:

  • New perspectives on objects, encapsulation, and inheritance
  • The idea of design patterns, their origins, and how they apply in the discipline of software design
  • Pattern-based, object-oriented software development using the Unified Modeling Language (UML)
  • How to implement critical patterns--Strategy, Observer, Bridge, Decorator, and many more
  • Commonality/Variability Analysis and design patterns, and how they aid in understanding abstract classes

From analysis to implementation, Design Patterns Explained allows you to unleash the true potential of patterns and paves the path for improving your overall designs. This book provides newcomers with a genuinely accurate and helpful introduction to object-oriented design patterns.



0201715945B06142001

About the Author

Alan Shalloway is the founder, CEO, and principal consultant of Net Objectives, an object-oriented consulting/training organization. He has a master's degree in computer science from MIT, over thirty years of experience in software development, and several years of experience in mentoring and training. He spends much of his time offering courses in design patterns, OOA, OOD, and lightweight methodologies, and building advanced software for both his own company and his clients.

James R. Trott is a senior consultant for a large software company in the Pacific Northwest and formerly was a senior engineer for a large aerospace company. He holds a master of science in applied mathematics, an MBA, and a master of arts in intercultural studies. He has spent seventeen years in the field of artificial intelligence, knowledge modeling, and knowledge management and is an expert in using cognitive design patterns and the KADS methodology.



0201715945AB06142001

Excerpt. � Reprinted by permission. All rights reserved.

Design patterns and object-oriented programming. They hold such promise to make your life as a software designer and developer easier. 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 understand 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 concert 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 possibly discover patterns on your own.

Most importantly, you will be better equipped to create flexible and complete software that is easier to maintain.

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 considered 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 sessions, I was convinced that design patterns were the greatest thing to happen 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 maintain. 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 thinking 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.

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 just using them to create 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-oriented 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.

Imagine my surprise! The design pattern books I had been reading and the design pattern experts I had been talking to were saying that you really needed to have a good grounding in object-oriented design before embarking on a study of design patterns. Nevertheless, I saw, with my own eyes, that students who learned object-oriented design concurrently with design patterns learned object-oriented design faster than those just studying object-oriented design. They even seemed to learn design patterns at almost the same rate as experienced object-oriented practitioners.

I began to use design patterns as a basis for my teaching. I began to call my classes Pattern Oriented Design: Design Patterns from Analysis to Implementation.

I wanted my students to understand these patterns and began to discover that using an exploratory approach was the best way to foster this understanding. For instance, I found that it was better to present the Bridge pattern by presenting a problem and then have my students try to design a solution to the problem using a few guiding principles and strategies that I had found were present in most of the patterns. In their exploration, the students discovered the solution--called the Bridge pattern--and remembered it.

In any event, I found that these guiding principles and strategies could be used to "derive" several of the design patterns. By "derive a design pattern," I mean that if I looked at a problem that I knew could be solved by a design pattern, I could use the guiding principles and strategies to come up with the solution that is expressed in the pattern. I made it clear to my students that we weren't really coming up with design patterns this way. Instead, I was just illustrating one possible thought process that the people who came up with the original solutions, those that were eventually classified as design patterns, might have used.

My abilities to explain these few, but powerful, principles and strategies improved. As they did, I found that it became more useful to explain an increasing number of the Gang of Four patterns. In fact, I use these principles and strategies to explain 12 of the 14 patterns I discuss in my design patterns course.

I found that I was using these principles in my own designs both with and without patterns. This didn't surprise me. If using these strategies resulted in a design equivalent to a design pattern when I knew the pattern was present, that meant they were giving me a way to derive excellent designs (since patterns are excellent designs by definition). Why would I get any poorer designs from these techniques just because I didn't know the name of the pattern that might or might not be present anyway?

These insights helped hone my training process (and now my writing process). I had already been teaching my courses on several levels. I was teaching the fundamentals of object-oriented analysis and design. I did that by teaching design patterns and using them to illustrate good examples of object-oriented analysis and design. In addition, by using the patterns to teach the concepts of object orientation, my students were also better able to understand the principles of object orientation. And by teaching the guiding principles and strategies, my students were able to create designs of comparable quality to the patterns themselves.

I relate this story because this book follows much the same pattern as my course (pun intended). In fact, from Chapter 3 on, this book is very much the first day of my two-day course: Pattern Oriented Design: Design Patterns from Analysis to Implementation.

As you read this book, you will learn the patterns. But even more importantly, you will learn why they work and how they can work together, and the principles and strategies upon which they rely. It will be useful to draw on your own experiences. When I present a problem in the text, it is helpful if you imagine a similar problem that you have come across. This book isn't about new bits of information or new patterns to apply, but rather a new way of looking at object-oriented software development. I hope that your own experiences, connected with the principles of design patterns, will prove to be a powerful ally in your learning.

--Alan Shalloway

From Artificial Intelligence to Patterns to True Object Orientation

My journey into design patterns had a different starting point than Alan's but we have reached the same conclusions:

  • Pattern-based analyses make you a more effective and efficient analyst because they let you deal with your models more abstractly and because they represent the collected experiences of many other analysts.
  • Patterns help people to learn principles of object orientation. The patterns help to explain why we do what we do with objects.

I started my career in artificial intelligence (AI) creating rule-based expert systems. This involves listening to experts and creating mod-els of their decision-making processes and then coding these models into rules in a knowledge-based system. As I built these systems, I began to see repeating themes: in common types of problems, experts tended to work in similar ways. For example, experts who diagnose problems with equipment tend to look for simple, quick fixes first, then they get more systematic, breaking the problem into component parts; but in their systematic diagnosis, they tend to try first inexpensive tests or tests that will eliminate broad classes of problems before other kinds of tests. This was true whether we were diagnosing problems in a computer or a piece of oil field equipment.

Today, I would call these recurring themes patterns. Intuitively, I began to look for these recurring themes as I was designing new expert systems. My mind was open and friendly to the idea of pat-terns, even though I did not know what they were.

Then, in 1994, I discovered that researchers in Europe had codified these patterns of expert behavior and put them into a package that they called Knowledge Analysis and Design Support, or KADS. Dr. Karen Gardner, a most gifted analyst, modeler, mentor, and human being, began to apply KADS to her work in the United States. She extended the European's work to apply KADS to object-oriented systems. She opened my eyes to an entire world of pattern-based analysis and design that was forming in the software world, in large part due to Christopher Alexander's work. Her book, Cognitive Patterns (Cambridge University Press, 1998) describes this work.

Suddenly, I had a structure for modeling expert behaviors without getting trapped by the complexities and exceptions too early. I was able to complete my next three projects in less time, with less rework, and with greater satisfaction by end-users, because:

  • I could design models more quickly because the patterns predicted for me what ought to be there. They told me what the essential objects were and what to pay special attention to.
  • I was able to communicate much more effectively with experts because we had a more structured way to deal with the details and exceptions.
  • The patterns allowed me to develop better end-user training for my system because the patterns predicted the most important features of the system.

This last point is significant. Patterns help end-users understand systems because they provide the context for the system, why we are doing things in a certain way. We can use patterns to describe the guiding principles and strategies of the system. And we can use patterns to develop the best examples to help end-users understand the system.

I was hooked.

So, when a design patterns study group started at my place of employment, I was eager to go. This is where I met Alan who had reached a similar point in his work as an object-oriented designer and mentor. The result is this book. I hope that the principles in this book help you in your own journey to become a more effective and efficient analyst.

--James R. Trott



0201715945P06152001

Most helpful customer reviews

112 of 114 people found the following review helpful.
learn OO in 'design patter' way
By Yu H. Chou
There are 2 ways of learning new concepts and principles:
1. learn principles first, then try to use them
2. observe good implementations first, then learn to appreciate the principles behind them
The authors successfully convince me that the 2nd way is the better way of learning a paradigm like OO. The authors first give us a little principles (Chapter 1), and then intorduce to us the good designs one by one (Part III, IV, V). While explaining these good design solutions (design patterns), authors didn't forget to stop and show us what we have been through, and the principles we can draw from our experience.
This is really a joyful and mind-shifting reading.
This book is not trying to teach you everything about design pattern and OO. But it lays a very sold foundation in your brain, and force you to think in a new perspective.
Of course, you should read GoF after or along with reading this one.
Also recommend:
Craig Larman: Applying UML and Design Pattern (this book puts the things you learned into real developement process)

108 of 110 people found the following review helpful.
Explained thoroughly and concretely
By Michael Wade
I have read the Gang of Four book, which I highly respect and view as a kind of Bible for Patterns. The analogy is apt in that you don't read the Bible once, expecting to "get it" the first time through. You need to read, re-read, read commentaries and explainations. And even so, I found the patterns nebulous. Don't get me wrong! The G of Four book is a must have. But this is the first book that took me from the beginning to the end, explaining in concrete examples that I could understand. One of the key points is applying Patterns to the entire software process, not just design, AND MOREOVER, using many Patterns in the solution of software problems.
I also really enjoyed the writing style. Someone else has complained that it is written in first person even though there is more than one author. Personally, I don't care how many authors are involved, I want results. And the first person choice brought me into the inner circle, where someone was explaining things directly to me. It is a great read, with an almost ideal style of writing for my personality. They break out bulleted lists (another complaint from someone) that gives me the highlights of what we are going to cover. I cannot explain what a great difference that made. One great lecturer from JPL said when giving a lexture: "Tell them what you're going to tell them. Tell them. Then tell them what you told them." A brilliant speaker, this methodology lends itself to writing I think as much as speaking. Design Patterns I have read and done my best to understand, but this book breaks them down into easy to understand, and more importantly, cases where they can apply in simple language.
Possibly most importantly, they describe how learning patterns can be used together with learning OO. I have been doing OO design for many, many years. I read the GofFour, but it was soooo dry, and although I tried hard to put them into practice in my software, I was always disappointed with the results. It felt that the Patterns were tacked on to handle some specific portion of the software. This book, OTOH, addresses the issue of teaching OOD and Patterns at the same time. Even though I considered myself a "good" OO person, I found that after reading this book the Patterns began to fit together with my designs. Wonderful!
All this may not mean much to you, but if you are interested in Patterns, the Gang of Four, then please do yourself a favor and buy this book. Not only will you not regret it, it will [pull] you in and teach you in ways you never thought possible. Go for it, you will have no regrets. I have read many, many, many, software books, and this one just shines.

53 of 55 people found the following review helpful.
THE Introduction to Design Patterns
By Christopher J. Falter
This sparkling little introduction to design patterns is clear, well-organized, and supplied with sufficient sample code to help you understand and use 14 of the most important design patterns. Best of all, the authors provide insight into how using design patterns meshes with best practices in object-oriented analysis and design (OOAD).
They explain the shortcomings of traditional OOAD by supplying an example of a brittle, overly complex design that they themselves had crafted. They identify the culprit as overreliance on specialization.
The authors then discuss 14 of the most important patterns from the Gang Of Four book, and how using them made their own design more elegant. Along the way, they elucidate several themes you need to know in order to use design patterns:
* Encapsulation can hide more than data. It can hide complexity (the Facade pattern) or an ill-suited interface (the Adapter pattern), for example.
* Find what is common and make it an interface; find what varies, and encapsulate it.
* Don't get lost by plunging into the details of implementation too early; instead, use design patterns to address your problem space at a conceptual level.
As suits an introductory work, the authors do not deal with all the design patterns from the Gang Of Four, and not with the same depth. Fortunately, they supply ample footnotes to provide further reading for those of us who want more depth.
Bottom Line: You know that if you just turn nouns in your problem space into objects and verbs into methods, you won't magically get a sound design. On the other hand, it is easy to get lost in the complexity of Gamma's classic. Resolve the dilemma by reading this book first!
Footnote: as I feel that the vast majority of potential readers will not have the opportunity to attend Shalloway's 2-day course, I will not use the fact that it duplicates much of the book's content as a reason to lower my rating. It's a 5-star work all the way.

See all 68 customer reviews...

Design Patterns Explained: A New Perspective on Object-Oriented Design, by Alan Shalloway, James Trott PDF
Design Patterns Explained: A New Perspective on Object-Oriented Design, by Alan Shalloway, James Trott EPub
Design Patterns Explained: A New Perspective on Object-Oriented Design, by Alan Shalloway, James Trott Doc
Design Patterns Explained: A New Perspective on Object-Oriented Design, by Alan Shalloway, James Trott iBooks
Design Patterns Explained: A New Perspective on Object-Oriented Design, by Alan Shalloway, James Trott rtf
Design Patterns Explained: A New Perspective on Object-Oriented Design, by Alan Shalloway, James Trott Mobipocket
Design Patterns Explained: A New Perspective on Object-Oriented Design, by Alan Shalloway, James Trott Kindle

Design Patterns Explained: A New Perspective on Object-Oriented Design, by Alan Shalloway, James Trott PDF

Design Patterns Explained: A New Perspective on Object-Oriented Design, by Alan Shalloway, James Trott PDF

Design Patterns Explained: A New Perspective on Object-Oriented Design, by Alan Shalloway, James Trott PDF
Design Patterns Explained: A New Perspective on Object-Oriented Design, by Alan Shalloway, James Trott PDF

Tidak ada komentar:

Posting Komentar