Design Patterns Brown-Bag Lectures

Talks on Gang-of-Four Design Patterns: Mediator, Observer, Javabeans, Model-View-Controller, Command, Template Method, Strategy and Null Object, Composite and Visitor, Factory Method, Abstract Factory and Builder

The following are brown-bag lunch talks I gave on Design Patterns at the Johns Hopkins Applied Physics Lab. This is an ongoing series and this page will be updated with new lectures over time


Youtube playlist with all videos: Design Patterns Playlist

Video License

Creative Commons License
Design Patterns Brown-Bag Series by Scott Stanchfield is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 United States License.

Feel free to watch the videos and point friends to them, but you cannot use them as part of any commercial product nor can you create derivative works. Follow the link above to see the complete license text.

Note that all sample code for this series is stored on github as git repositories. Each step in the lectures is tagged with STEP1, STEP2, etc. Code may be browsed on github or cloned.

Session 1 - Introduction, Naive GUI, Mediator

Sample Code:

Session 2 - Observer, Javabeans

Sample Code:

Session 3 - Model-View-Controller

Sample Code:

Session 4 - Command

Sample Code:

Session 5 - Template Method, Strategy and Null Object

Sample Code:

Session 6 - Composite and Visitor

Sample Code:

Session 7 - Factory Method, Abstract Factory and Builder

Sample Code:

Software License

All code is licensed under Apache 2

Copyright 2015 Scott Stanchfield

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.