O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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

Table of Contents

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