News  |  About  |  Tools  |  Training Courses |  Services |  Contact Us

 
 


 
 

The Refactory News
About Us
Tools
Training
Agile Method
Frameworks
Patterns
Refactoring
Smalltalk
Testing
Services
 
Training Courses  

  Design Patterns

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.