4.46 out of 5
4.46
2924 reviews on Udemy

Master Object Oriented Design in Java – Homework + Solutions

Don't just learn Java! Learn to write practical industry standard object oriented software and super charge your career!
Instructor:
Imtiaz Ahmad
18,133 students enrolled
English More
Advance your programming skills from a junior level newbie to a competent intermediate level object oriented software developer
Design and develop software using best practices in Object oriented programming
Apply the 5 crucial object oriented design principles using Java
Apply design patterns such as Strategy, Observer, Template Method, Factory, and Builder
Make the leap into professional software craftsmanship and take your career to the next level!

LATEST: Course Updated Nov 2018

SUPER CHARGE OF YOUR PROGRAMMING CAREER and acquire some seriously marketable skills!

    Just because you learned how to use a hammer doesn’t mean you are ready to construct a building. Similarly, It’s not enough to just understand a programming language. That’s just a tool that can be used to develop various programs. The real craftsmanship is in software DESIGN

    This course is designed to take a junior level programmer with limited knowledge about object orientation to a competent level object oriented software designer! I expect you to understand the basics of loops, methods and conditionals in Java. You’ll be completing hands-on HOMEWORK Exercises through out the course! I have provided detailed video solutions to the exercises so that you can check your answers and get step by step instructions of how to tackle the object oriented design assignments. 

      You can find plenty of resources online for solving a programming puzzle  or practicing algorithms. But… when it comes to object oriented design,  admittedly, there is limited material out there for you to practice. So  in this course, we use a LEARN-BY-DOING  approach to explore a series of progressively challenging exercises to  discover the 5 core object oriented design PRINCIPLES summarized by an  acronym called SOLID: 

  (S). Single Responsibility   

          (O). Open/Closed   

    (L).  Liskov Substitution   

          (l ). Interface Segregation   

          (D). Dependency Inversion   

      During this journey you’ll get practice applying some of the most important DESIGN PATTERNS that competent developers must have under their belt. There are so many design patterns out there, but we’ll be thoroughly covering only the most important ones. Save yourself the time from learning all the design patterns and going on a design frenzy. Focus on the 20% that covers 80% of the scenarios and add miles to your programming efficiency. 

  These cover 80% of patterns used out there in professional software development.   

  1). Strategy Pattern   

          2). Observer Pattern   

          3). Builder pattern   

          4). Factory method pattern   

          5). Template Method Pattern   

  6). Singleton Pattern 

                              The topics can be applied to pretty much any object oriented language. But, we’ll be using Java, so I expect you to be familiar with the basic language constructs such as classes, methods and interfaces. But don’t worry if you don’t know about these, I’ve taken the time to create 6 comprehensive prerequisite lessons on introduction to object orientation. In these lessons, new comers can learn about the basics of object orientation such as: 

  1). Classes and objects   

          2). Inheritance and polymorphism,   

          3). Interfaces and abstract classes.   

                              I’m certain that, by practicing the concepts covered, you’ll make a substantial leap forward in your programming career. I hope to see you in the coming lessons.

This course is from This site offers lectures on practical software development topics to immediately impact your programming skills. Things you can take to your interview and feel confident in your abilities!

1
How to make the most of this course
2
Download Source Code for Lectures

Introductory Principles in Object Orientation (Optional Prerequisite)

1
Class and Object (Optional Prerequisite)
2
Program Flow and Using Constructor (Optional Prerequisite)
3
Object and Class
4
Application Runtime (Optional Prerequisite)
5
Java Behind The Scenes
6
Class Inheritance (Optional Prerequisite)
7
Application Runtime Quiz
8
Interfaces and Abstractions (Optional Prerequisite)
9
Abstract Classes (Optional Prerequisite)
10
Interfaces and Abstract Classes

This quiz will test your knowledge on Abstract Classes and Interfaces

11
Message From The Instructor

Object Oriented Design Principles (SOLID)

1
Objects, Messages and Dependencies

Before starting this section of the course, I encourage you to watch the videos in the prerequisite section if you are not familiar with the basics of Object Oriented Programming in Java. There are 6 lectures there that cover difference between what an object is, and a class, the basics of Inheritance, Polymorphism, Interfaces and Abstract Classes.

2
Forming Associations Between Objects
3
Overview of Software Design
4
Single Responsibility Principle

Make sure to watch the entire video and try the exercise before watching the next video that contains the solution.

5
UML Diagram - Single Responsibility
6
Single Responsibility - Homework
7
Quiz on Single Responsibility Principle

This quiz will test your understanding on the single responsibility principle

8
Open Closed Principle & STRATEGY Pattern
9
Open Closed Principle - Homework
10
Quiz on the Open Closed Principle

This quiz will test your understand of the open closed principle

11
Dependency Inversion + TEMPLATE Pattern

I wanted to cover this design principle next because I think it is more fitting to learning path we are following even though it's the last letter of the SOLID acronym. We also learn about the Template Method Design Pattern in the lecture. Make sure to watch the entire video and try the exercise before watching the next video containing the solution.

Visual Representation of Dependency Inversion: Click Here

12
Dependency Inversion & Template pattern - Homework Solution
13
UML Diagram - Dependency Inversion
14
Quiz on Dependency Inversion principle

This will test your knowledge of the Dependency Inversion Principle

15
Liskov Substitution Principle
16
Liskov Substitution Principle UML
17
Quiz on Liskov Substitution Principle

This quiz will test your understanding of the Liskov Substitution principle

18
Interface Segregation Principle
19
UML Diagram - Interface Segregation
20
Quiz on Interface Segregation Principle

This quiz will test your knowledge of the interface segregation Principle

Object Oriented Design Patterns in Practice

1
Dependency Injection Part 1
2
Dependency Injection Part 2 (Using Spring)
3
Observer Pattern

Make sure to watch the entire video and try the exercise before watching the solution video

4
Observer Pattern - Homework Solution
5
UML Diagram - Observer Pattern
6
Coffee Shop Assignment (another application of the observer pattern)
7
Builder Pattern
8
Factory Design Pattern
9
UML Diagram - Factory Pattern
10
Singleton Design Pattern (Newly Added)
11
Real world Project - Create an API

Course Extras!

1
Automatically generate UML diagrams from java code Tutorial
2
Final Comments from Instructor
3
Bonus: Lifetime Access to All My Course
You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
4.5
4.5 out of 5
2924 Ratings

Detailed Rating

Stars 5
1755
Stars 4
919
Stars 3
200
Stars 2
29
Stars 1
20
78a46190fb50badbbaa5e802b23eb22c
30-Day Money-Back Guarantee

Includes

5 hours on-demand video
6 articles
Full lifetime access
Access on mobile and TV
Certificate of Completion