Basics of Software Architecture & Design Patterns in Java

A guide to create smart, reusable softwares with SOLID principles and design patterns
4.3 (72 ratings) Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
1,373 students enrolled Bestselling in Design Patterns
Instructed by Holczer Balazs IT & Software / Other
$19
$80
76% off
Take This Course
  • Lectures 60
  • Length 5 hours
  • Skill Level All Levels
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 6/2015 English

Course Description

Hi!

This course is about software architecture and design patterns. We will talk about two man topics: SOLID principles and design patterns. We are going to implement the problems in Java, but the theoretical background is language-independent. I highly recommend typing out the implementations several times on your own in order to get a good grasp of it.

In the first part of the course we are going to learn about the SOLID principles. We are going to talk about the theory as well as the implementations.

The second part of the course is about design patterns. We should have a deep understanding of these patterns in order to be able to write reusable software components. These techniques are becoming more and more important as applications are getting more and more complex, so - in my opinion - these topics are good to know.

What are the requirements?

  • Basic Java
  • Object oriented programming

What am I going to get from this course?

  • SOLID principles
  • Design patterns
  • Object oriented design

What is the target audience?

  • This course is meant for newbies who are familiar with Java and want to be able to write reusable code

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Section 1: Introduction
Introduction
Preview
02:19
Section 2: SOLID Principles ( Design Principles )
------------------------ S -----------------------------
Article
Single responsibility principle
Preview
02:30
Single responsibility principle example I
Preview
07:37
Single responsibility principle example II
06:07
------------------------ O -----------------------------
Article
The open closed principle
Preview
07:06
The open closed principle example I
08:28
The open closed principle II
04:51
------------------------ L -----------------------------
Article
Liskov substitution principle
03:53
Liskov substitution principle I
07:28
Liskov substitution principle II
03:16
------------------------ I -----------------------------
Article
Interface segregation principle
02:57
Interface segregation principle example
07:47
------------------------ D -----------------------------
Article
Dependency inversion principle introduction I
07:18
Inversion of control - dependency injection
05:59
Dependency inversion principle example I
06:02
Dependency inversion principle example II
05:46
Section 3: Behavioral Design Patterns
Strategy pattern introduction
05:05
Strategy pattern example
04:43
Observer pattern introduction
03:18
Observer pattern example
10:53
Command pattern introduction
02:33
Command pattern example I
07:09
Command pattern example II - queuing model
09:09
Iterator pattern example
08:13
State pattern example
05:44
Template pattern introduction
02:11
Template pattern - bubble sort
04:16
Template pattern - insertion sort
04:05
Template pattern example
10:06
Null object pattern introduction
02:34
Null object pattern example
05:10
Visitor pattern introduction
02:33
Visitor pattern implementation
09:33
Section 4: Creational Design Patterns
Singleton pattern
04:17
Singleton pattern II
05:46
Factory pattern introduction
01:54
Factory pattern example
05:58
Builder pattern example - avoiding telescopic constructors
10:11
Why to use builder pattern?
06:39
Data Access Object (DTO) pattern example
06:36
Section 5: Structural Design Patterns
Decorator pattern introduction
02:53
Decorator pattern example
07:55
Facade pattern introduction
01:19
Facade pattern example
04:50
Adapter pattern introduction
01:09
Adapter pattern example
05:00
Section 6: Model-View-Controller (MVC) Application
Model-view-controller introduction
03:21
Model-view-controller - Model
01:24
Model-view-controller - Controller
02:57
Model-view-controller - View
12:06
Section 7: Miscellaneous
Service locator introduction
06:20
Service locator pattern implementation
12:40
JNDI and service locator pattern
02:51
Section 8: Source Code
Article

You can download the source code here!

Coupon codes - get any of my other courses for a discounted price
Article

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Holczer Balazs, Software Engineer

Hi!

My name is Balazs Holczer. I am from Budapest, Hungary. I am qualified as a physicist and later on I decided to get a master degree in applied mathematics. At the moment I am working as a simulation engineer at a multinational company. I have been interested in algorithms and data structures and its implementations especially in Java since university. Later on I got acquainted with machine learning techniques, artificial intelligence, numerical methods and recipes such as solving differential equations, linear algebra, interpolation and extrapolation. These things may prove to be very very important in several fields: software engineering, research and development or investment banking. I have a special addiction to quantitative models such as the Black-Scholes model, or the Merton-model. Quantitative analysts use these algorithms and numerical techniques on daily basis so in my opinion these topics are definitely worth learning.

Ready to start learning?
Take This Course