Giter VIP home page Giter VIP logo

premaseem / designpatternsjava9 Goto Github PK

View Code? Open in Web Editor NEW
82.0 10.0 171.0 22.29 MB

This repository has all 23 GOF design patterns coded in Java 9 with around 50+ working project code used for Video Course by Packt Publication with title "Learn Design Patterns with Java " authored by "Aseem Jain". The link of the course is

Home Page: https://www.packtpub.com/application-development/learn-design-patterns-java-9-video

License: GNU General Public License v3.0

Java 100.00%
designpatterns designpatternsjava design-patterns design-pattern gang-of-four gang-of-four-design-patterns designpatterndemo aseemjain java10 javadesignpatterns

designpatternsjava9's Introduction

Learn Design Patterns with Java by Aseem Jain

This repository contains working project code used in video Course by Packt Publication with title "Learn Design Patterns with Java " authored by "Aseem Jain".

Course link:

https://www.packtpub.com/application-development/learn-design-patterns-java-9-video

Course introduction Video

Course introduction video

Click to play video

Repository over view

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

Example:

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 switch branch

Links for useful resources mentioned in the course:

https://github.com/premaseem/DesignPatternsJava9/blob/master/Useful%20Links%20for%20the%20course.pdf

Authors blog on design patterns:

https://premaseem.wordpress.com/category/computers/design-patterns/

Software Design pattern community face book page:

https://www.facebook.com/DesignPatternGuru/

Course Overview:

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.

Who this course is for:

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.

What you will learn from this course:

  1. Understanding complex coding issues in easy-to-understand code examples
  2. Brain-friendly examples with real-life analogies
  3. Practical coding examples for practice and ease of understanding
  4. Mini projects as assignments to ensure that you are able to apply design patterns
  5. Practical guide for design patterns (not boring theory but 100% practical coding as a reference guide )
  6. Will help you develop good coding habits.
  7. Understand complex designs and architecture effortlessly.
  8. Develop non-cluttered reusable code with industry standard proven solutions documented in design patterns.

Table of Contents

1. Getting Started with 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

2. Categorization of Design Pattern

  • 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

3. Creational Design Patterns

  • Singleton Design Pattern
  • Prototype Design Pattern
  • Builder Design Pattern
  • Factory Design Pattern
  • Abstract Factory Design Pattern

4. Structural Design Patterns

  • Adapter Design Pattern
  • Proxy Design Pattern
  • Facade Design Pattern
  • Bridge Design Pattern
  • Composite Design Pattern
  • Flyweight Design Pattern
  • Decorator Design Pattern

5. Behavioral Design Patterns - The Beginning

  • Iterator Design Pattern
  • Mediator Design Pattern
  • Command Design Pattern
  • Chain of Responsibility Design Pattern
  • Interpreter Design Pattern

6. Behavioral Design Patterns โ€” the Conclusion

  • Observer Design Pattern
  • Strategy Design Pattern
  • State Design Pattern
  • Template Method Design Pattern
  • Visitor Design Pattern
  • Memento Design Pattern

7. Conclusion

Note:

  • 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.

designpatternsjava9's People

Contributors

premaseem avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.