Технология программирования
Информатика и вычислительная техника
  • формат pdf
  • размер 1.93 МБ
  • добавлен 07 ноября 2011 г.
Lasater C.G. Design Patterns
Издательство Wordware Publishing, 2006, -471 pp.

Design pattes have been around for quite a few years. They were originally created by the Gang of Four (Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides), which is responsible for formalizing the accepted design pattes we use today. Their use, while questioned and argued over by different programming schools of thought, has generally been accepted as "best practices" within the development community. The original takeoff of design pattes was brought about in the Java and C++ world.
Other languages like .NET (dot NET) have sprung up in recent years to fill certain marketing and technology voids left open by these languages, and have adopted design pattes in one way or another to mimic what was leaed by programmers in Java and C++. Even the previously script-oriented syntax of Visual Basic has blossomed into a fully object-oriented language, via Visual Basic.NET. Microsoft also added a Java-like language, which has related syntax and framework structure, in the form of C#, which is so much like Java that applying design pattes is a relatively expected conjecture.
Most programmers new to object-oriented languages seem to have the same dilemma when faced with whether or not to use or lea design pattes: Why should I? Usually the problem is that the ability and time required for leaing pattes-based programming is at a premium and the retu seems dubious. Someone not familiar with the why behind the methodology certainly will not continue on to the what and where. So explaining to people new to the concept why they should spend the time leaing design pattes can be difficult.
Another issue is availability and ease of dissemination of the relevant data. There have been numerous books and papers written on the uses and methodology of design pattes, but to a junior developer looking to improve basic skills or lea the skills needed to get a job, having to read complicated texts to lea a new methodology or way of thinking is out of the question. Senior developers looking to upgrade current skills can have similar issues, in that to augment their skill sets they have to do a large amount of research just to be able to understand the basics. Most of the texts available on design pattes are not easily referenced, and require an expanded understanding of object-oriented methodologies and pattes to even get through, and full comprehension may require reading the material several times from start to finish. There have been a few attempts to "dumb down" the data, but these seem to be more playful than useful, and leave project developers a little tued off by the lack of serious content of the work.
As a developer, as well as a development manager, I can assure you I have had the same problems. Whether leaing to use pattes or teaching them to others, I found there was no quick and easy reference to explain or lea which patte is appropriate in which case and why. I often struggled with the basics of object-oriented design when leaing pattes, and had to lea the hard way which methods worked where. One thing I did find was that design pattes were created and have evolved from the work of everyday code practices, and many developers are using them without actually knowing the established 23 pattes. When I first started to patte, I often had to search through many texts and websites, accessing several sources to understand a particular patte. This was hard when trying to meet deadlines, since time was crucial, and the only reason I persisted in leaing was because I saw there was a lot of value in what I did manage to understand.
After several years of this kind of thing, I began to write some articles for the Code Project site (www.codeproject.com). I started with aspects of things about which I saw value, but I thought were under- documented. I wrote in a fashion that I would like to read, something without a lot of complicated dialog that just stated problems and solutions in code and explanations of what I was doing and why. After a while I realized a lot of people seemed to respond to what I had written. That was when I decided that I should write this book.
The goal of this book is to give you, the reader, an easy to reference library of the recognized 23 design pattes as well as some principles of object-oriented programming that will help you become a better designer. I wrote this book for a specific audience, but I hope I wrote it in a way that those who are not coders can also get something out of it. The audience I am trying to reach is project developers, coders who do not have the time or patience for complicated or glitzy texts, but need real-world answers they can easily follow and use immediately in their own code.


Introduction
Chapter 1: Why Patte?
Chapter 2: Creational Pattes
What Is a Factory Patte?
Abstract Factory Patte
Builder Patte
Prototype Patte
Singleton Patte
Chapter 3: Behavioral Pattes 53
Chain of Responsibility Patte
Command Patte
Interpreter Patte
Iterator Patte
Mediator Patte
Memento Patte
Observer Patte
State Patte
Strategy Patte
Template Patte
Visitor Patte
Chapter 4: Structural Pattes
Adapter Patte
Bridge Patte
Composite Patte
Decorator Patte
Facade Patte
Flyweight Patte
Proxy Patte
Похожие разделы
Смотрите также

Влиссидес Дж. Применение шаблонов проектирования. Дополнительные штрихи

  • формат pdf
  • размер 2.29 МБ
  • добавлен 24 февраля 2011 г.
М.: Вильямс, 2003. - 144 с. - ISBN: 5-8459-0393-9, 0-2014-3293-5 Книга одного из "Банды четырёх" - авторов знаменитой "Design Patterns". Данная книга предназначена для разработчиков программного обеспечения, использующих в своей работе шаблоны проектирования. Шаблоны по праву считаются сегодня одной из наиболее популярных концепций объектно-ориентированного программирования. В этой книге на многочисленных примерах рассматриваются важные аспекты...

Agarwal B.B. Software engineering and testing

  • формат pdf
  • размер 11.62 МБ
  • добавлен 05 декабря 2010 г.
Jones and Bartlett Publishers, 2010. 516 р. Software Engineering and Testing. Introduction to Software Engineering. Software-Development Life-Cycle Models. Introduction to Software Requirements Specification. Software Reliability and Quality Assurance. System Design. Software Measurement and Metrics. Software Testing. Software-Testing Strategies. Software Maintenance and Project Management. Computer-Aided Software Engineering. Coding. Software De...

Butler M., Jones C., Romanovsky A., Troubitsyna E. (eds.) Methods, Models and Tools for Fault Tolerance

  • формат pdf
  • размер 3.22 МБ
  • добавлен 21 декабря 2011 г.
Издательство Springer, 2009, -349 pp. The growing complexity of modern software systems increases the difficulty of ensuring the overall dependability of software-intensive systems. Complexity of environments, in which systems operate, high dependability requirements that systems have to meet, as well as the complexity of infrastructures on which they rely make system design a true engineering challenge. Mastering system complexity requires desi...

Copeland Lee. A Practitioner's Guide to Software Test Design

  • формат chm
  • размер 7.17 МБ
  • добавлен 06 января 2011 г.
The book focuses only on software test design, not related subjects such as test planning, test management, test team development, etc. While those are important in software testing, they have often overshadowed what testers really need—the more practical aspects of testing, specifically test case design. Other excellent books can guide you through the overall process of software testing. One of my favorites is Systematic Software Testing by Rick...

Dooley J. Software Development and Professional Practice

  • формат pdf
  • размер 6 МБ
  • добавлен 16 августа 2011 г.
Apress, 2011. - 242 p. Software Development and Professional Practice reveals how to design and code great software. What factors do you take into account? What makes a good design? What methods and processes are out there for designing software? Is designing small programs different than designing large ones? How can you tell a good design from a bad one? You'll learn the principles of good software design, and how to turn those principles back...

Jalote P. An Integrated Approach to Software Engineering

  • формат pdf
  • размер 7.7 МБ
  • добавлен 10 ноября 2011 г.
Издательство Springer, 2005, -571 pp. Third Edition An introductory course in Software Engineering remains one of the hardest subjects to teach. Much of the difficulty stems from the fact that Software Engineering is a very wide field which includes a wide range of topics. Consequently, what should be the focus of an introductory course remains a challenge with many possible viewpoints. This third edition of the book approaches the problem from...

Meszaros G. xUnit Test Patterns Refactoring Test Code

  • формат pdf
  • размер 5.16 МБ
  • добавлен 22 ноября 2011 г.
Hardcover: 833 pages Publisher: Addison-Wesley (May 31, 2007) Language: English ISBN-10: 0131495054 ISBN-13: 978-0131495050 Automated testing is a cornerstone of agile development. An effective testing strategy will deliver new functionality more aggressively, accelerate user feedback, and improve quality. However, for many developers, creating effective automated tests is a unique and unfamiliar challenge. xUnit Test Patterns is the definitive...

Myers, Glenford J. The Art of Software Testing

  • формат pdf
  • размер 3.52 МБ
  • добавлен 17 октября 2011 г.
Published by by John Wiley & Sons, Inc., Hoboken, New Jersey © 2004. 2rd edition. ISBN: 0-471-46912-2, 151 pages. This long-awaited revision of a bestseller provides a practical discussion of the nature and aims of software testing. You'll find the latest methodologies for the design of effective test cases, including information on psychological and economic principles, managerial aspects, test tools, high-order testing, code inspections, a...

Pressman R. Software Engineering: A Practitioner's Approach (5th edition)

  • формат pdf
  • размер 6.66 МБ
  • добавлен 05 декабря 2010 г.
Pressman's Software Engineering: A Practitioner's Approach is celebrating 20 years of excellence in the software engineering field. This comprehensive 5th edition provides excellent explanations of all the important topics in software engineering and enhances them with diagrams, examples, exercises, and references. In the fifth edition, a new design has been added to make the book more user friendly. Several chapters have been added including cha...

Rothlauf F. Design of Modern Heuristics: Principles and Application

  • формат pdf
  • размер 2.3 МБ
  • добавлен 19 августа 2011 г.
Springer, 2011. - 267 p. Most textbooks on modern heuristics provide the reader with detailed descriptions of the functionality of single examples like genetic algorithms, genetic programming, tabu search, simulated annealing, and others, but fail to teach the underlying concepts behind these different approaches. The author takes a different approach in this textbook by focusing on the users' needs and answering three fundamental questions: Fir...