Design Patterns in Java

Video description

Design Patterns in Java LiveLessons is a clear, concise introduction to one of the most important concepts in software engineering–design patterns. It introduces patterns both conceptually and through the application of many classic “Gang of Four” design patterns to the development of a case study application written in Java.

Douglas C. Schmidt, Professor of Computer Science at Vanderbilt University’s School of Engineering, provides students and professional programmers with 4+ hours of example and case study based video learning on the concepts and application of design patterns. Design Patterns in Java LiveLessons describes how to master the complexity of developing software by learning and applying object-oriented patterns and frameworks. It centers on a case study that showcases pattern- and object-oriented design and programming techniques using Java. This case study will help you evaluate the limitations of alternative software development methods (such as algorithm decomposition) and demonstrate by example how patterns and object-orientation help to alleviate such limitations. More than a dozen patterns from the book Design Patterns: Elements of Reusable Object-Oriented Software (the so-called “Gang of Four”' book) are applied in the case study.

Visit www.dre.vanderbilt.edu/~schmidt/LiveLessons/ for additional content and commentary on this LiveLesson.

Skill Level

  • Intermediate

What You Will Learn

  • How to recognize the inherent and accidental complexities involved with developing object-oriented software.
  • How pattern-oriented software architecture techniques can and cannot help to alleviate this complexity.
  • How to apply key pattern-oriented software architecture techniques to develop reusable object-oriented software infrastructure and apps.
  • How to apply Java programming language features and libraries to develop reusable and robust object-oriented software.
  • Where to find additional sources of information on how to successfully apply pattern-oriented software architecture techniques to object-oriented software.

Who Should Take This Course

  • Developers looking for a practical introduction to developing pattern-oriented software with Java.

Course Requirements

  • Basic understanding of object-oriented programming and development
  • Familiarity with the Java programming language

Publisher resources

Download Example Code

Table of contents

  1. Introduction
    1. Introduction to Design Patterns in Java LiveLessons
  2. Lesson 1: Overview of Patterns
    1. Learning objectives
    2. 1.1 Recognize the importance of design experience when becoming a master software developer
    3. 1.2 Understand what patterns are and how they codify design experience to help improve quality and productivity
    4. 1.3 Identify common characteristics of patterns and pattern descriptions
    5. 1.4 Know the history of the GoF book and its patterns
    6. 1.5 Know the key relationships between patterns
    7. Putting all the pieces together
  3. Lesson 2: Overview of the Expression Tree Processing App Case Study
    1. Learning objectives
    2. 2.1 Understand the goals of the object-oriented (OO) expression tree case study
    3. 2.2 Recognize key structural and behavioral properties in the expression tree domain
    4. 2.3 Evaluate the functional and non-functional requirements of the case study
    5. Putting all the pieces together
  4. Lesson 3: Evaluating an Algorithmic Decomposition of the Expression Tree Processing App
    1. Learning objectives
    2. 3.1 Develop an algorithmic decomposition of the expression tree processing app
    3. 3.2 Evaluate the benefits and limitations of algorithmic decomposition
    4. Putting all the pieces together
  5. Lesson 4: Evaluating an Object-Oriented Design of the Expression Tree Processing App
    1. Learning objectives
    2. 4.1 Understand how to develop an object-oriented design of the expression tree processing app
    3. 4.2 Evaluate the benefits and limitations of object-oriented design relative to algorithmic decomposition
    4. Putting all the pieces together
  6. Lesson 5: A Pattern-Oriented Expression Tree Processing App
    1. Learning objectives
    2. 5.1 Understand the history of the Gang-of-Four book and recognize which patterns are used in the expression tree processing app
    3. 5.2 Understand the Composite pattern
    4. 5.3 Understand the Bridge pattern
    5. 5.4 Understand the Interpreter pattern
    6. 5.5 Understand the Builder pattern
    7. 5.6 Understand the Iterator pattern
    8. 5.7 Understand the Strategy pattern
    9. 5.8 Understand the Visitor pattern
    10. 5.9 Understand the Command pattern
    11. 5.10 Understand the Factory Method pattern
    12. 5.11 Understand the State pattern
    13. 5.12 Understand the Template Method pattern
    14. 5.13 Understand the Singleton pattern
  7. Lesson 6: Putting All the Pieces Together
    1. Learning objectives
    2. 6.1 Evaluate the benefits of applying patterns to designing and implementing software
    3. 6.2 Evaluate the limitations of applying patterns to designing and implementing software
    4. Putting all the pieces together
  8. Summary
    1. Summary of Design Patterns in Java LiveLessons

Product information

  • Title: Design Patterns in Java
  • Author(s):
  • Release date: August 2013
  • Publisher(s): Addison-Wesley Professional
  • ISBN: 0133489981