This repository contains working project code used in video Course by Packt Publication with title "Learn Design Patterns with Java " authored by "Aseem Jain".
https://www.packtpub.com/application-development/learn-design-patterns-java-9-video
Click to play video
Profile: http://in.linkedin.com/in/premaseem
This course exposes you to a very rich github code repository which has around 50 different working code projects. Code is organized in separate branches, which means all code related to singleton design pattern is in single-pattern branch and all code related observer pattern is observer-pattern branch. Each branch has related diagrams in the branch. The commit history also helps you evovle the code. You are supposed to clone or download the code base and exectue it locally or play with it for deeper learning. You can own the repo by forking it and modify code as much as you want. Remember the rule, more you code better you learn ;-)
This repository has several branches and each branch contains code of a design pattern. https://github.com/premaseem/DesignPatternsJava9/tree/pattern-name
To look at code of Decorator pattern you might have to switch to branch decorator pattern link: https://github.com/premaseem/DesignPatternsJava9/tree/decorator-pattern
https://github.com/premaseem/DesignPatternsJava9/blob/master/Useful Links for the course.pdf
https://premaseem.wordpress.com/category/computers/design-patterns/
https://www.facebook.com/DesignPatternGuru/
Learn and master common design patterns in Java , and become an efficient programmer. In this course, you will start by exploring the benefits of using design patterns for developers in their regular development environment. You will move on to see which design patterns are suited for which circumstances. You will see the different categories to which the Design Patterns belong. Throughout this course, each type of Design Pattern will be accompanied by a practical example and information on when to use a given Design Pattern. You will also be shown scenarios in which specific Design Patterns are to be avoided. In the end, you will learn how to overcome any issues that may be encountered while using design patterns initially.
This course is for those programmers/developers who have a basic knowledge of OOPs (preferably in Java) and are looking to refine their code through design patterns in their day to day coding practice.
- Understanding complex coding issues in easy-to-understand code examples
- Brain-friendly examples with real-life analogies
- Practical coding examples for practice and ease of understanding
- Mini projects as assignments to ensure that you are able to apply design patterns
- Practical guide for design patterns (not boring theory but 100% practical coding as a reference guide )
- Will help you develop good coding habits.
- Understand complex designs and architecture effortlessly.
- Develop non-cluttered reusable code with industry standard proven solutions documented in design patterns.
- The Course Overview
- How to Write Better Code
- Code Issues Versus Design Issues
- What Are Design Patterns
- Benefits of a Design Pattern for a Developer
- How Design Patterns Are Similar to Life Patterns
- Are Design Patterns Different for Different Languages
- Setting Up the Development Environment
- Issues Faced Due to Force Fitting Everything in Object Inheritance
- Fundamental Concepts of Code Reusability
- No Silver Bullet to Solve All Design Issue in Software
- Recognize the Pattern of Problem and Design Solution to Solve It
- Categorizing Design Patterns
- Framework Architecture
- Singleton Design Pattern
- Prototype Design Pattern
- Builder Design Pattern
- Factory Design Pattern
- Abstract Factory Design Pattern
- Adapter Design Pattern
- Proxy Design Pattern
- Facade Design Pattern
- Bridge Design Pattern
- Composite Design Pattern
- Flyweight Design Pattern
- Decorator Design Pattern
- Iterator Design Pattern
- Mediator Design Pattern
- Command Design Pattern
- Chain of Responsibility Design Pattern
- Interpreter Design Pattern
- Observer Design Pattern
- Strategy Design Pattern
- State Design Pattern
- Template Method Design Pattern
- Visitor Design Pattern
- Memento Design Pattern
- When to Use Which Design Pattern
- Mini-project (Requirements document - https://github.com/premaseem/DesignPatternsJava9/blob/master/Final_assignment.md)
- Anti Patterns
- Resources for Deeper Learning
- This code base will work on Java 9 and above versions.
diagrams
folders carry UML diagrams.pattern
folder has code of primary example.patternBonus
folder has code of secondary or bonus example.