Mô tả

Course Overview

    This course starts with SOLID Design Principles in Java. It will then provide a comprehensive introduction to Java Design patterns with practical, hands on exercises.


What are SOLID Design Principles?

SOLID design principles are almost a mandatory skill for every Java developer. These principles enable you to write most reusable & clean Java code in your projects.

You'll learn SOLID Principles which are:

Single Responsibility Principle

Open-Closed Principle

Liskov Substitution Principle

Interface Segregation Principle

Dependency Inversion Principle


All these principles are explained in detail and you'll refactor existing Java code and apply these principles in hands on exercise along with me.

Then we move on to Java Design Patterns.

To learn about the design patterns using Java programming language we'll discuss:   

  •     Learn what kind of problems are solved by each design pattern.

  •     Discuss various roles in the design pattern using UML diagrams.

  •     We'll use UML of example that we are going to solve as well as UMLs from gang of four book

  •     Discuss how the design  pattern is applied in the example & how various parts fit together.

  •     Hands on example using Java in Eclipse IDE that uses the design pattern.

  •     Various design & implementation considerations for every design pattern.

  •     Discuss how the design pattern varies from another similar pattern.

  •     See where a design pattern is used in real life.

This course covers all the classic design patterns from the Gang of Four (GoF) book. In addition we'll discuss few newer design patterns that are used in modern software development. We'll discuss how a pattern can be implemented in various ways & how we can tailor them to be used with Java language.

This course is the Most Comprehensive course on Java Design Patterns that you can find.


So, what are Design Patterns & why should you care?

    Design patterns represent solutions to common problems, which you face while doing programming. These solutions are reusable and can solve a wide variety of problems. These became popular with the release of classic book on the subject "Elements of Reusable Object-Oriented Software" writtern by Erich Gamma, John Vlissides, Ralph Johnson and Richard Helm (these authors are known as Gang of Four and so the common abbreviation GoF book :) )
    One problem while studying this book as a Java developer is that the authors are using C++ to demonstrate a pattern, which was the most popular & widely used programming language at the time. So you'll see examples using C++ language features like pointers, copy constructors etc. which do not translate easily to Java.
    This course will help greatly in that aspect. We'll study each design pattern using Java to its full potential.


What is covered in this course?

    This course covers SOLID Design Principles and 26 design patterns in all. We'll cover following:

  • SOLID Design Principles: Learn about Single Responsibility, Open-Closed, Liskov substitution, Interface segregation & Dependency Inversion principles.

  • Creational Design Patterns: Simple Factory, Abstract Factory, Factory Method, Singleton, Builder, Prototype & Object Pool

  • Structural Design Patterns: Object & Class Adapters, Decorator, Bridge, Facade, Static & Dynamic Proxy, Flyweight & Composite  

  • Behavioral Design Patterns: Chain of Responsibility, Command, Interpreter, Mediator, Iterator, Memento, Observer, State, Strategy, Template Method, Visitor, & Null Object

    Each design patterns is also implemented in a follow along coding lecture.


How the Course is Structured?

    We focus on live coding along with theory. Each design is implemented in a live coding session (which you can follow along) as well as discussed with UML & slides. After studing a section you'll know almost everything about the design pattern.

    This course is created with focus on being used as a reference. So each design pattern is discussed in it's own section with a separated lecture for each aspect of the design pattern. Each section is organized as following lectures:
    1. Introduction - This lecture introduces pattern, a problem that it solves & a formal UML diagram
    2. Implementation Steps - This lecture will discuss how you'll implement this pattern in Java.
    3. Example UML - We discuss the UML of the hands on problem we're going to solve.
    4. Implementation - In this lecture we'll implement the design pattern in Java using Eclipse IDE
    5. Implementation & Design Considerations - Some important points about performance, variations & practical advice on using the pattern
    6. Real World Example - In this lecture we'll see how the pattern is used in real life by Java's own class library & popular frameworks like Spring, JSF
    7. Comparison with Similar pattern - See how the pattern is different than another similar pattern.
    8. Pitfalls - Many pattern have some drawbacks. This lecture will show you what those are.
    9. Summary - This lecture will summarise all the information about the pattern.

    As you can see, by breaking a single design pattern in smaller topics, you can easily watch only those parts that you need in future.


What is provided with the Course?

  •  We have provided all code samples from the hands on lectures. You can download the starter code & follow along or you can download the finished code to study on your own.

  •  All UML diagram with description of each role in the design pattern is provided as PDF in summary video. These slides are enough to quickly revise design pattern structure.

  • A PDF guide to all design pattern summaries with code samples and UML diagrams.

Who should take this Course?

  • Beginner as well as experience Developers.

  • Software Designers & Architects.

 

Bạn sẽ học được gì

Master 26 design patterns including 23 design patterns of gang of four & other new modern design patterns

Master the SOLID design principles using Java with hands on examples along with design patterns

Get a complete understanding of Java design patterns & understand where to use them in Java code

Learn the differences between competing design patterns to choose correct solution to your problem

Get real world examples of design patterns usage with hands on projects for every design pattern

Become senior Java developer by learning about design patterns and SOLID design principles

Understand & implement all creational, structural & behavioral gang of four design patterns using Java

Understand & implement Null Object, Object Pool design patterns using Java

Comprehensive knowledge about limitations, comparisons, real world usage & hand on examples of design patterns using Java

Yêu cầu

  • You should have a basic knowledge of Java & basic programming concepts
  • If you want to follow along, you need any Java code editor & a computer to run it

Nội dung khoá học

32 sections

SOLID Design Principles

12 lectures
Section Introduction
01:06
Single Responsibility Principle
03:42
Single Responsibility Principle - Hands on
12:28
Open-Closed Principle
02:28
Open-Closed Principle - Hands On
10:39
Liskov Substitution Principle
01:35
Liskov Substitution Principle - Hands On
10:54
Interface Segregation Principle
02:20
Interface Segregation Principle - Hands On
07:52
Dependency Inversion Principle
07:43
Dependency Inversion Principle - Hands On
09:26
SOLID Principles Quiz
6 questions

Introduction

2 lectures
Design Patterns - Introduction
01:59
Quiz - Design Pattern Introduction
2 questions

Creational Design Patterns

1 lectures
Creational Patterns - Introduction
01:41

Builder

11 lectures
Builder - Introduction
06:49
Builder Implementation Steps
01:57
Builder - Example UML
01:46
Builder - Implementation Part 1
14:13
Builder - Implementation Part 2
03:45
Builder - Implementation & Design Considerations
03:06
Builder - Examples
03:40
Builder - Comparison with Prototype
02:59
Builder - Pitfalls
02:06
Builder - Summary
04:54
Quiz - Builder Design Pattern
4 questions

Simple Factory

9 lectures
Simple Factory - Introduction
02:35
Simple Factory - Implementation Steps
00:49
Simple Factory - Implementation
04:22
Simple Factory - Implementation & Design Considerations
01:12
Simple Factory - Example
01:24
Simple Factory - Comparison with Factory Method
00:53
Simple Factory - Pitfalls
00:42
Simple Factory - Summary
01:37
Quiz - Simple Factory
2 questions

Factory Method

9 lectures
Factory Method - Introduction
02:26
Factory Method - Implementation Steps
01:00
Factory Method - Example UML
01:35
Factory Method - Implementation
06:02
Factory Method - Implementation & Design Considerations
02:12
Factory Method - Example
02:01
Factory Method - Pitfalls
00:54
Factory Method - Summary
04:56
Quiz - Factory Method
3 questions

Prototype

10 lectures
Prototype - Introduction
02:12
Prototype - Implementation Steps
02:03
Prototype - Example UML
00:58
Prototype - Implementation
11:34
Prototype - Implementation & Design Considerations
02:50
Prototype - Example
01:09
Prototype - Comparison with Singleton
01:19
Prototype - Pitfalls
01:17
Prototype - Summary
02:50
Quiz - Prototype Design Pattern
3 questions

Abstract Factory

10 lectures
Abstract Factory - Introduction
09:16
Abstract Factory - Implementation Steps
01:33
Abstract Factory - Example UML
02:55
Abstract Factory - Implementation
09:15
Abstract Factory - Implementation & Design Considerations
02:09
Abstract Factory - Example
06:05
Abstract Factory - Comparison with Factory Method
01:15
Abstract Factory - Pitfalls
01:25
Abstract Factory - Summary
05:22
Quiz - Abstract Factory
3 questions

Singleton

12 lectures
Singleton - Introduction
01:58
Singleton - Implementation Steps
01:53
Singleton - Implementation - Eager Singleton
03:39
Singleton - Implementation - Lazy Singleton
06:17
Singleton - Implementation - Initialization Holder
07:20
Singleton - Implementation - Enum
02:59
Singleton - Implementation & Design Considerations
03:29
Singleton - Example
01:04
Singleton - Comparison with Factory Method
01:07
Singleton - Pitfalls
02:04
Singleton - Summary
09:13
Quiz - Singleton
4 questions

Object Pool

10 lectures
Object Pool - Introduction
03:14
Object Pool - Implementation Steps
01:33
Object Pool - Example UML
02:04
Object Pool - Implementation
15:51
Object Pool - Implementation & Design Considerations
04:52
Object Pool - Example
03:58
Object Pool - Comparison with Prototype
01:17
Object Pool - Pitfalls
02:06
Object Pool - Summary
07:15
Quiz - Object Pool
3 questions

Structural Design Patterns

1 lectures
Structural Design Patterns - Introduction
01:56

Adapter

11 lectures
Adapter - Introduction
05:35
Adapter - Implementation Steps
02:25
Adapter - Example UML
01:59
Adapter - Implementation - Class Adapter
06:18
Adapter - Implementation - Object Adapter
05:01
Adapter - Implementation & Design Considerations
03:51
Adapter - Example
01:35
Adapter - Comparison with Decorator
02:10
Adapter - Pitfalls
02:44
Adapter - Summary
05:10
Quiz - Adapter
4 questions

Bridge

10 lectures
Bridge - Introduction
05:13
Bridge - Implementation Steps
02:58
Bridge - Example UML
03:18
Bridge - Implementation
05:59
Bridge - Implementation & Design Considerations
02:10
Bridge - Example
04:30
Bridge - Comparison with Adapter
01:48
Bridge - Pitfalls
01:11
Bridge - Summary
03:59
Quiz - Bridge Design Pattern
3 questions

Decorator

10 lectures
Decorator - Introduction
02:29
Decorator - Implementation Steps
01:16
Decorator - Example UML
01:53
Decorator - Implementation
06:34
Decorator - Implementation & Design Considerations
03:23
Decorator - Example
01:46
Decorator - Comparison with Composite
01:10
Decorator - Pitfalls
01:49
Decorator - Summary
03:22
Quiz - Decorator
3 questions

Composite

10 lectures
Composite - Introduction
05:23
Composite - Implementation Steps
01:55
Composite - Example UML
01:17
Composite - Implementation
09:47
Composite - Implementation & Design Considerations
03:21
Composite - Example
02:09
Composite - Comparison with Decorator
01:02
Composite - Pitfalls
01:40
Composite - Summary
04:37
Quiz - Composite
4 questions

Facade

10 lectures
Facade - Introduction
03:12
Facade - Implementation Steps
01:31
Facade - Example UML
01:18
Facade - Implementation
04:17
Facade - Implementation & Design Considerations
03:19
Facade - Example
03:50
Facade - Comparison with Adapter
01:52
Facade - Pitfalls
01:39
Facade - Summary
02:53
Quiz - Facade
3 questions

Flyweight

10 lectures
Flyweight - Introduction
05:50
Flyweight - Implementation Steps
01:56
Flyweight - Example UML
02:42
Flyweight - Implementation
14:26
Flyweight - Implementation & Design Considerations
01:27
Flyweight - Example
04:11
Flyweight - Comparison with Object Pool
01:21
Flyweight - Pitfalls
01:41
Flyweight - Summary
05:44
Quiz - Flyweight
3 questions

Proxy

12 lectures
Proxy - Introduction
03:31
Proxy - Implementation Steps Part 1
02:00
Proxy - Example UML
01:35
Proxy - Implementation Part 1
09:55
Proxy - Dynamic Proxy Implementation Steps
01:19
Proxy - Dynamic Proxy Implementation
16:10
Proxy - Implementation & Design Considerations
02:54
Proxy - Example
01:36
Proxy - Comparison with Decorator
01:32
Proxy - Pifalls
02:17
Proxy - Summary
06:07
Quiz - Proxy
3 questions

Behavioral Design Patterns

1 lectures
Behavioral Patterns - Introduction
01:17

Chain of Responsibility

10 lectures
Chain of Responsibility - Introduction
04:15
Chain of Responsibility - Implementation Steps
02:10
Chain of Responsibility - Example UML
02:20
Chain of Responsibility - Implementation
20:18
Chain of Responsibility - Implementation & Design Considerations
02:41
Chain of Responsibility - Example
01:49
Chain of Responsibility - Comparison with Command
02:05
Chain of Responsibility - Pitfalls
01:15
Chain of Responsibility - Summary
07:06
Quiz - Chain of Responsibility
4 questions

Command

10 lectures
Command - Introduction
05:20
Command - Implementation Steps
03:15
Command - Example UML
02:35
Command - Implementation
12:46
Command - Implementation & Design Considerations
04:21
Command - Example
01:31
Command - Comparison with Strategy
01:17
Command - Pitfalls
03:00
Command - Summary
04:28
Quiz - Command
3 questions

Interpreter

10 lectures
Interpreter - Introduction
04:48
Interpreter - Implementation Steps
03:18
Interpreter - Example UML
03:12
Interpreter - Implementation
21:18
Interpreter - Implementation & Design Considerations
03:30
Interpreter - Example
03:13
Interpreter - Comparison with Visitor
01:18
Interpreter - Pitfalls
01:05
Interpreter - Summary
04:34
Quiz - Interpreter
3 questions

Mediator

10 lectures
Mediator - Introduction
07:11
Mediator - Implementation Steps
02:49
Mediator - Example UML
05:14
Mediator - Implementation
19:50
Mediator - Implementation & Design Considerations
03:33
Mediator - Example
05:04
Mediator - Comparison with Observer
02:36
Mediator - Pitfalls
01:08
Mediator - Summary
08:20
Quiz - Mediator
3 questions

Iterator

9 lectures
Iterator - Introduction
03:57
Iterator - Implementation Steps
02:20
Iterator - Example UML
01:49
Iterator - Implementation
07:00
Iterator - Implementation & Design Considerations
02:53
Iterator - Example
01:42
Iterator - Pitfalls
01:02
Iterator - Summary
05:16
Quiz - Iterator
2 questions

Memento

10 lectures
Memento - Introduction
03:51
Memento - Implementation Steps
01:32
Memento - Example UML
02:59
Memento - Implementation
17:57
Memento - Implementation & Design Considerations
04:13
Memento - Example
03:50
Memento - Comparison with Command
02:18
Memento - Pitfalls
00:59
Memento - Summary
05:07
Quiz - Memento
3 questions

Observer

10 lectures
Observer - Introduction
06:25
Observer - Implementation Steps
02:10
Observer - Example UML
01:34
Observer - Implementation
14:50
Observer - Implementation & Design Considerations
06:38
Observer - Example
02:57
Observer - Comparison with Mediator
02:11
Observer - Pitfalls
01:43
Observer - Summary
05:47
Quiz - Observer
3 questions

State

10 lectures
State - Introduction
04:20
State - Implementation Steps
02:32
State - Example UML
01:40
State - Implementation
15:54
State - Implementation & Design Considerations
03:22
State - Example
01:46
State - Comparison with Command
01:11
State - Pitfalls
01:30
State - Summary
06:09
Quiz - State
2 questions

Strategy

10 lectures
Strategy - Introduction
03:13
Strategy - Implementation Steps
01:34
Strategy - Example UML
01:52
Strategy - Implementation
10:31
Strategy - Implementation & Design Considerations
03:08
Strategy - Example
03:22
Strategy - Comparison with State
01:04
Strategy - Pitfalls
00:49
Strategy - Summary
05:44
Quiz - Strategy
3 questions

Template Method

10 lectures
Template Method - Introduction
04:40
Template Method - Implementation Steps
01:36
Template Method - Example UML
01:42
Template Method - Implementation
15:36
Template Method - Implementation & Design Considerations
02:37
Template Method - Example
01:05
Template Method - Comparison with Strategy
01:46
Template Method - Pitfalls
01:37
Template Method - Summary
03:57
Quiz - Template Method
3 questions

Visitor

10 lectures
Visitor - Introduction
07:14
Visitor - Implementation Steps
01:51
Visitor - Example UML
03:32
Visitor - Implementation
19:06
Visitor - Implementation & Design Considerations
04:29
Visitor - Example
01:45
Visitor - Comparison with Strategy
01:49
Visitor - Pitfalls
02:22
Visitor - Summary
08:31
Quiz - Visitor
3 questions

Null Object

10 lectures
Null Object - Introduction
04:18
Null Object - Implementation Steps
02:03
Null Object - Example UML
01:13
Null Object - Implementation
06:13
Null Object - Implementation & Design Considerations
04:14
Null Object - Example
01:45
Null Object - Comparison with Proxy
02:16
Null Object - Pitfalls
02:22
Null Object - Summary
03:39
Quiz - Null Object
3 questions

Design Pattern Summary Document

1 lectures
Design Patterns Summary Document
00:31

Đánh giá của học viên

Chưa có đánh giá
Course Rating
5
0%
4
0%
3
0%
2
0%
1
0%

Bình luận khách hàng

Viết Bình Luận

Bạn đánh giá khoá học này thế nào?

image

Đăng ký get khoá học Udemy - Unica - Gitiho giá chỉ 50k!

Get khoá học giá rẻ ngay trước khi bị fix.