|
Benefits:
-
Describes what patterns are, how
to use them, and why they are important.
-
Teaches where patterns should be
applied to improve your designs
-
Shows how patterns can make the
design process more efficient
-
Presents all twenty-three
patterns from the Design Patterns book
-
Presents several additional
patterns from the growing body of patterns literature
-
Gives examples of how patterns
are used drawn from a variety of industries and problem domains
-
Examines the relationship between
patterns and traditional methods
-
Shows how patterns can be
combined and composed in original ways
-
Focuses on how to write
object-oriented programs using patterns in Java or C#
-
Examines the relationship among
patterns, frameworks, object-oriented languages, and software architecture
Description :
The recent surge in interest in software
patterns has placed a long overdue spotlight on how good programs are put
together. Design patterns are distillations of design insight drawn from
practice. They capture recurring solutions to software design problems. Once a
designer is familiar with these patterns, he or she can use them in his or her
own designs without having to reinvent them from first principles. Using
patterns allows developers to make their systems more flexible, reusable,
adaptable, and readable. Patterns also provide a common vocabulary for concisely
communicating these architectural insights. Our course examines all twenty-three
patterns in Design Patterns: Elements of Reusable Object-Oriented Software
(Addison-Wesley, 1994).
The course begins with a detailed review of
what patterns are and how they can be used to help design object oriented
software. We examine the most important patterns in depth, while ensuring that
attendees have seen all the patterns at least once. In addition, the Type Object
and Properties patterns will be reviewed, and their roles in building highly
configurable dynamic systems will be examined. A brief introduction to Kent
Beck's coding patterns will also be presented. The course will be taught using
examples from a number of OO languages: C++, C#, Java, or Smalltalk. All
exercises will be conducted in C++, Java, or Smalltalk. Once the class is over,
students should understand design patterns, know where they fit in the software
development process, and be able to leverage them to solve design problems
efficiently.
Who Should Attend:
This course is recommended for
object-oriented designers and system developers, as well as systems analysts and
project leaders. To complete the course exercises, attendees should understand
object-oriented programming concepts and have some experience coding in Java,
Smalltalk, C#, or C++.
Course Exercises:
-
Modeling software licensing management
large organization using the Composite Pattern
-
Managing pricing policy using the Strategy
pattern
-
Using Interpreter, Visitor and Observer to
design a simple spreadsheet
-
Identifying patterns in existing systems
The number of people that can attend
this course is 10 minimum and 20 maximum; in practice smaller numbers lead to
better interaction. We customize the course every time we give it, and have
different versions for Java, C++, and Smalltalk audiences.
|