|
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#
·
Looks at 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.
|