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.
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.
Section 1 - SOLID Principles
what are SOLID principles?
single responsibility principle
open closed principle
Liskov's substitution principle
interface segregation principle
dependency inversion principle
what is dependency injection?
Section 3 - Creational Design Patterns
what are creational design patterns?
singleton pattern
factory pattern
abstract factory pattern
builder pattern
prototype pattern
Section 2 - Behavioral Design Patterns
what are behavioral design patterns?
strategy pattern
observer pattern
command pattern
iterator pattern
template pattern and null object pattern
visitor pattern
Section 3 - Structural Design Patterns
what are structural design patterns?
decorator pattern
flyweight pattern
facade pattern
adapter pattern
Section 4 - Model-View-Controller (MVC) Pattern
the model-view-controller (MVC) model
an application with Java Swing
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.
Thank for joining the course, let's get started.
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.