Java Design Patterns and Architecture

1 Review

Teachers: John Purcell

About: 4½ hours, 19 lessons, Certificate of Completion

Discover some of the most useful, important and common design patterns in Java; reusable code patterns that you can use to structure your program and perform common tasks. Includes lots of examples with full source code. "Design Patterns" has been the big buzz phrase in the Java community for some time now, and if you want to be able to write effective Java programs, work as a Java developer or pass exams in Java, you can't afford to miss out. Fortunately, this course is entirely free :)

Take this FREE Java Design Patterns and Java Architecture course right now and learn everything about java design patterns and java architectu … Read More


More Details

Course Description

Discover some of the most useful, important and common design patterns in Java; reusable code patterns that you can use to structure your program and perform common tasks. Includes lots of examples with full source code. "Design Patterns" has been the big buzz phrase in the Java community for some time now, and if you want to be able to write effective Java programs, work as a Java developer or pass exams in Java, you can't afford to miss out. Fortunately, this course is entirely free :)

Take this FREE Java Design Patterns and Java Architecture course right now and learn everything about java design patterns and java architecture.

Curriculum

Module 1: Methodology

Lesson 1: Introduction
An introduction to the course.
Lesson 2: A Brief History of Software Design
This is just some notes about software design; partly because I want to explain why I don't know much about formal design methodologies and so won't cover them in this course (even though we will talk a fair bit about software design), partly just to explain what little I do know about it, and partly because I need to get a few things off my chest ...
Lesson 3: Front End / Back End
We'd better start by looking at the most fundamental of design patterns -- so fundamental that it can be overlooked, but it's the pattern that every software developer has in his or her head, and works from as a starting point.

Module 2: Structural Patterns

Lesson 1: Model-View-Controller: The Theory
In this tutorial we'll look at the theory behind MVC, before going on to implement an example.
Lesson 2: Model-View-Controller: In Practice
In this tutorial we'll set up a basic MVC framework, leaving out the "listener" stuff, which we'll come back to later on.
Lesson 3: Observer Pattern: The Theory
We need the observer pattern in order to complete our model view controller pattern. Even if you don't use MVC, the observer pattern is vital to user interface programming. It's one of the vital structural patterns that hold modern software together. It can also be quite tricky to understand initially, so for that reason we'll go through the theory of it before actually tackling it.
Lesson 4: Observer Pattern: An Example Involving Buttons
Let's take a look at one of the easiest (inasmuch as this pattern can be called "easy") usages of the observer pattern; adding handlers to buttons in Swing. Don't worry if you don't know Swing; this code would look pretty much the same for a variety of situations involving timers and other uses of Observer.
Lesson 5: Observer Pattern: Implementing From Scratch (with MVC)
Let's take a look at an example implementation of the observer pattern. In this tutorial I'll make my "controller" listen to my "view" in my MVC implementation, but you could make any object listen to any other object. You just need some kind of a situation where the object being listened to can somehow signal that something has happened for some reason -- for example, a button can be clicked or a timer can trigger. Your other object can then "listen" to t
Lesson 6: An MVC Controversy
I realised while making this course that it's a controversial issue, whether the model should talk to the view directly or not. Well, controversial among those who like controversy. Most software developers would say that you should decide this based on what you need to implement. The model should never use View classes; everyone agrees on that. Aside from basic stuff like that, things like this are just implementation details and not worth getting too hung up on.

Module 3: Smaller Scale Patterns

Lesson 1: The Singleton Pattern
The singleton pattern is controversial, but important to know since you'll encounter it even if you decide not to use it.
Lesson 2: Beans
We'll need a "bean" to use as the "transfer object" in the DAO patterns. They're also useful for lots of other things, such as event objects and storing data in your program.
Lesson 3: DAO
We'll start looking at the DAO pattern in this tutorial (there's a bit more to come!). DAO is a pattern for abstracting away databases and keeping all your SQL or LDAP code or whatever safely in particular files.
Lesson 4: DAO Factories
The DAO pattern is potentially multi-layered. Here we'll add one more layer, by creating a "factory" that can create our DAO objects.
Lesson 5: JUnit Basics: Testing the DAO
An introduction to JUnit. This seems like a good place to put a JUnit tutorial, because we really need to test the DAO class before proceeding further.
Lesson 6: Extending DAO for Multiple Databases
Let's extend the DAO pattern so that it can cope with multiple databases. We'll need to define interfaces that the existing stuff implements, and maybe even an abstract class for a final touch.
Lesson 7: Saving to Memory
Often applications don't save every modification you make directly to disk or to a database, but work with data in memory. In this tutorial we'll look at an example of that, and finally make use of our "model" class.
Lesson 8: Factory Pattern
The factory pattern is one of the most important patterns, and one that you're likely to get asked about on job interviews and exams. It involves creating a method that instantiates and returns objects, rather than the user of the objects instantiating them directly with "new". This allows you to pre-configure objects or to engage in lengthy determinations of precisely which object to return, which can then be hidden from the end user of your API.
Lesson 9: Facades
The Facade pattern is almost too simple to be called a pattern. Nevertheless, being familiar with it will prevent you from panic when your colleague or boss casually starts wittering about "creating some facades". When you see what it actually is, your mental state will change from panic to relief, combined with frustration that people can't just speak normally.
Lesson 10: Adapter Pattern
The Adapter pattern simply consists of a class that "adapts" from the interface implemented by some class (which contains the functionality you need) to a different interface.

Reviews (1 Review)

Ari Haverinen February 8th, 2017

What You'll Learn

  1. Understand common design patterns in Java
  2. Know when to apply common patterns
  3. Be able to use design patterns to help structure your software

Requirements

  1. Basic Java knowledge

Your Teacher

Software Development Trainer