Basics of Software Architecture & Design Patterns in Java

A guide to create smart, reusable softwares with SOLID principles and design patterns
4.2 (104 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,555 students enrolled Bestselling in Design Patterns
Instructed by Holczer Balazs IT & Software / Other
$15
$50
70% off
Take This Course
  • Lectures 58
  • Length 4.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

Who 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 -----------------------------
00:01
Single responsibility principle
Preview
02:30
Single responsibility principle example I
Preview
07:37
Single responsibility principle example II
06:07
------------------------ O -----------------------------
00:01
The open closed principle
Preview
07:06
The open closed principle example I
08:28
The open closed principle II
04:51
------------------------ L -----------------------------
00:01
Liskov substitution principle
03:53
Liskov substitution principle I
07:28
Liskov substitution principle II
03:16
------------------------ I -----------------------------
00:01
Interface segregation principle
02:57
Interface segregation principle example
07:47
------------------------ D -----------------------------
00:01
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:16
Strategy pattern example
06:05
Observer pattern introduction
03:01
Observer pattern example
10:06
Command pattern introduction
02:44
Command pattern example I
07:30
Command pattern example II - queuing model
08:10
Iterator pattern example
05:27
Template pattern introduction
01:48
Template pattern example
05:58
Null object pattern introduction
02:06
Null object pattern example
08:35
Visitor pattern introduction
02:33
Visitor pattern implementation
09:33
Section 4: Creational Design Patterns
Singleton pattern
06:33
Singleton pattern II
02:47
Factory pattern introduction
02:29
Factory pattern example
05:17
Builder pattern introduction
03:31
Builder pattern example - avoiding telescopic constructors
09:08
Why to use builder pattern?
06:39
Data Access Object (DTO) pattern example
06:20
Section 5: Structural Design Patterns
Decorator pattern introduction
02:17
Decorator pattern example
08:10
Facade pattern introduction
01:08
Facade pattern example
04:56
Adapter pattern introduction
01:07
Adapter pattern example
04:42
Section 6: Model-View-Controller (MVC) Application
Model-view-controller introduction
03:07
Model-view-controller - Model
01:38
Model-view-controller - View
05:24
Model-view-controller - Controller
04:47
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
00:02

You can download the source code here!

Coupon codes - get any of my other courses for a discounted price
00:06

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.

Take a look at my website and join my email list if you are interested in these topics!

Ready to start learning?
Take This Course