/MET-CS665

MET CS665 - OOP Design Patterns Code Examples

Primary LanguageJavaApache License 2.0Apache-2.0

MET-CS665 Class Repository

Code Examples about Design Patterns

In this Repository we collect example design patterns in Java and C++.

  • Directory Java/ includes Java examples

  • Directory C++/ includes C++ examples

Java Examples

C++ Examples

We use CMake to build C++ code.

  • Use Smart pointer in C++
  • Use C++14
  • Use one of the compiler LLvm - clang, 'Gnu Compiler Collection' gcc or 'Gnu C Compiler' g++, and enable warning flags while compiling your code
  • Check Memory Leaks using valgrind
valgrind --tool=memcheck <your_app> <your_apps_params>

Recommended Online Sources to learn Software Design Patterns

Books


  1. Design Patterns: Elements of Reusable Object‐Oriented Software By Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides Addison‐Wesley,1994

  2. Head First Design Patterns By Eric Freeman, Elisabeth Robson, Bert Bates, Kathy Sierra O’Reilly, 2004

  3. Design Patterns Explained: A New Perspective on Object Oriented Design, (Software Patterns) by Alan Shalloway, James R. Trott, Addison Wesley, 2004 ISBN-13: 978-0321247148

  4. Pattern-Oriented Software Architecture Volume 1: A System of Patterns by Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal. 1996, ISBN-10: 0471958697

  5. Design Patterns Explained Simply


Websites

  1. https://refactoring.guru/design-patterns/catalog List of Design Patterns with description and Example code.

  2. http://java-design-patterns.com List of Software Design Patterns with examples in Java http://java-design-patterns.com/patterns/

  3. http://www.oodesign.com/ This website is an older websites. It provides a good list of the main design patterns, description of them, examples and their UML diagrams.

  4. https://sourcemaking.com/design_patterns A professional Website with good different examples. If you are looking for different examples for each patterns than the classic examples. This site is a good source.

  5. List of Software Design Patterns on Wikipedia https://en.wikipedia.org/wiki/Category:Software_design_patterns


MOOCs

  1. Design Patterns by University of Alberta, this is part Software Design Architecture Specialization
  2. Object-Oriented Java
  3. Software Design Abstraction

Youtube

  1. Videos by Christopher Okhravi describing examples form Head First Design Patterns Book

  2. If you program C++, I highly Recommend Videos by Bjarne Stroustrup. For examples on CppCon, CppCon 2017, Keynotes by Bjarne Stroustrup . (BTW, this line should be on top of top of this list :) )