We may earn an affiliate commission when you visit our partners.
Zoran Horvat

This course will teach you important techniques of object-oriented design that help develop highly flexible and maintainable designs, even in the most complex business domains. Your code will never look the same again after watching this course.

Read more

This course will teach you important techniques of object-oriented design that help develop highly flexible and maintainable designs, even in the most complex business domains. Your code will never look the same again after watching this course.

Procedural implementation is hurting flexibility and maintainability of code to such an extent that further development often becomes nearly impossible. In this course, Mastering Object-oriented Programming in Java 8, you’ll develop skills to help you design truly object-oriented code when modeling complex and convoluted business logic. First, you’ll learn the power of streams as a replacement for explicit loops and branching, and how they can be turned more readable and easier to manage. Next, you’ll discover the realm of fluent interface designs, that will help construct composable domain-related code. Finally, you'll explore alternatives to hard-coded decisions with the Rules design pattern. By the end of this course, you will gain insight on how rules can become composable and flexible, taming even the scariest pieces of domain logic.

Enroll now

Here's a deal for you

We found an offer that may be relevant to this course.
Save money when you learn. All coupon codes, vouchers, and discounts are applied automatically unless otherwise noted.

What's inside

Syllabus

Course Overview
Turning Everything into Objects
Staying Focused on Domain Logic with Streams
Untangling Operations from Structure on Business Data
Read more
Advancing to a Domain - Specific Language
Increasing Flexibility by Removing Enums and Switch Statements
Turning Chained Branching into the Chain of Rule Objects
Refactoring to Bind It All Together

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Teaches strategies to reduce code flexibility and maintainability issues, which are common in procedural programming
Introduces the concept of streams to replace explicit loops and branching for improved code readability and manageability
Explores the use of fluent interface designs to create composable domain-related code, increasing code flexibility
Examines the Rules design pattern as an alternative to hard-coded decision-making, enhancing code flexibility and composability
Provides practical guidance on refactoring code to combine all concepts learned throughout the course, leading to improved code quality
Requires a solid understanding of object-oriented programming concepts prior to enrolling

Save this course

Save Mastering Object-oriented Programming in Java 8 to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Mastering Object-oriented Programming in Java 8 with these activities:
Review Object-Oriented Programming Concepts
Review object-oriented programming concepts to enhance your understanding of the course material.
Show steps
  • Read articles or books on OOP concepts.
  • Take online quizzes or practice problems.
Practice Writing Streams with Java 8
Writing streams can improve your understanding of the Java 8 Streams API and its benefits.
Browse courses on Java 8
Show steps
  • Create a stream from a collection.
  • Apply intermediate operations (e.g., filter, map) to the stream.
  • Perform a terminal operation (e.g., forEach, collect) on the stream.
Join a Study Group
Join a study group to discuss course topics and collaborate on projects, enhancing your understanding and retention.
Show steps
  • Find a group of peers with similar interests.
  • Meet regularly to discuss course materials and assignments.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Attend a Workshop on Java 8 Streams
Attend a workshop to gain hands-on experience with Java 8 streams and learn best practices for implementing them.
Browse courses on Java 8
Show steps
  • Research and find a workshop on Java 8 Streams.
  • Register and attend the workshop.
Build a Java Application with Fluent Interfaces
Build a Java application using fluent interfaces to gain hands-on experience with this design pattern.
Show steps
  • Create a builder class with fluent methods.
  • Use the builder class to create objects.
  • Configure objects using the fluent methods.
Contribute to an Open-Source Java Project
Contribute to an open-source Java project to gain practical experience in a real-world setting.
Browse courses on Java
Show steps
  • Find an open-source project that aligns with your interests.
  • Identify areas where you can contribute.
  • Submit a pull request with your changes.
Create a Domain-Driven Design Project
Develop a project that applies domain-driven design principles to enhance your understanding of complex business logic.
Browse courses on Domain-Driven Design
Show steps
  • Identify the domain and its key concepts.
  • Define the bounded contexts and their relationships.
  • Implement the domain logic using objects.

Career center

Learners who complete Mastering Object-oriented Programming in Java 8 will develop knowledge and skills that may be useful to these careers:
Software Engineer
In your role as a Software Engineer, you may often be tasked with writing and designing code that is flexible and easy to maintain. The course, Mastering Object-oriented Programming in Java 8, will help you to build those skills. This course will teach you about streams as a replacement for explicit loops and branching. You will discover fluent interface designs to help with your coding, and also alternatives to hard-coded decisions with the Rules design pattern. These will help you design code that is flexible and maintainable, a valuable skill to possess as a Software Engineer.
Software Architect
Mastering Object Oriented Programming in Java 8 is an excellent choice if you wish to become a Software Architect. The course will explore the power of streams, fluent interfaces, and rules in object-oriented programming using Java 8. This knowledge will help you to design and develop highly scalable and maintainable software applications fit for complex business domains. These are valuable skills as a Software Architect.
Technical Architect
As a Technical Architect, you will need to be able to design and develop software applications that are scalable, maintainable, and flexible. The course, Mastering Object-oriented Programming in Java 8, will help you to build those skills. This course will teach you about streams as a replacement for explicit loops and branching. You will discover fluent interface designs to help with your coding, and also alternatives to hard-coded decisions with the Rules design pattern. These will help you design code that is flexible and maintainable, a valuable skill to possess as a Technical Architect.
Senior Software Engineer
The course Mastering Object-oriented Programming in Java 8 will be of use to you as a Senior Software Engineer, as you often have to design and implement complex software systems. This course will teach you about streams as a replacement for explicit loops and branching, fluent interface designs, and alternatives to hard-coded decisions with the Rules design pattern. This will help you write code that is highly scalable, maintainable, and flexible, valuable skills to possess as a Senior Software Engineer.
Lead Software Engineer
As a Lead Software Engineer, you will need to be able to design and develop software applications that are scalable, maintainable, and flexible. The course, Mastering Object-oriented Programming in Java 8, will help you to build those skills. This course will teach you about streams as a replacement for explicit loops and branching. You will discover fluent interface designs to help with your coding, and also alternatives to hard-coded decisions with the Rules design pattern. These will help you design code that is flexible and maintainable, a valuable skill to possess as a Lead Software Engineer.
Java Developer
Mastering Object-oriented Programming in Java 8 is a valuable course for a Java Developer, as it delves into the power of streams, fluent interfaces, and rules in object-oriented programming, all while using Java 8. With this knowledge, you will be better equipped to design and develop highly scalable and maintainable software applications. These skills are in high demand for Java Developers.
Systems Analyst
As a Systems Analyst, you will be responsible for designing and developing software applications that meet the needs of your organization. Mastering Object-oriented Programming in Java 8 can be a useful course for you to better understand the principles of object-oriented programming, and can help you design and develop more efficient and maintainable systems.
Database Administrator
The course Mastering Object-oriented Programming in Java 8 can be a useful course for a Database Administrator. While it doesn't directly teach database administration, the course could help you to better understand the principles of object-oriented programming, which can help you design and develop more efficient and maintainable database systems.
Software Tester
Mastering Object-oriented Programming in Java 8 can be helpful for a Software Tester, as it can help you to better understand the code you are testing. The course will teach you about streams as a replacement for explicit loops and branching, fluent interface designs, and alternatives to hard-coded decisions with the Rules design pattern. This knowledge will give you the tools to more effectively test software applications.
Web Developer
Mastering Object-oriented Programming in Java 8 may be a useful course for you as a Web Developer, as it can help you to better understand the principles of object-oriented programming, and can help you design and develop more efficient and maintainable web applications.
Data Analyst
The course Mastering Object-oriented Programming in Java 8 may be useful for you as a Data Analyst, as it can help you to understand the principles of object-oriented programming. This can help you when working with and analyzing data in various formats.
Network Administrator
As a Network Administrator, the course Mastering Object-oriented Programming in Java 8 might be helpful for you as it will introduce you to streams, fluent interfaces, and rules in object-oriented programming. While networking is not the main focus of the course, these concepts can still be applied to developing and maintaining software systems related to networking.
Product Manager
The course Mastering Object-oriented Programming in Java 8 may not be directly related to Product Management but can still be helpful. By learning the principles of object-oriented programming, you'll gain a solid foundation for understanding how software systems are designed and developed. This knowledge can help you communicate more effectively with your engineering team and make better decisions about product development.
Business Analyst
The course Mastering Object-oriented Programming in Java 8 may be helpful to you as a Business Analyst, as it can help you to better understand the principles of object-oriented programming. This can help you when working with and analyzing business systems.
IT Manager
The course Mastering Object-oriented Programming in Java 8 introduces streams, fluent interfaces, and rules in object-oriented programming, which can be helpful to an IT Manager. Understanding these programming concepts can help you make better decisions on software development methodologies and manage your team more effectively.

Reading list

We've selected nine books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Mastering Object-oriented Programming in Java 8.
Is considered a classic work on design patterns and provides a comprehensive overview of the topic.
Introduces the domain-driven design approach, which can help learners design flexible and maintainable software.
Provides practical guidance on writing clean and maintainable code, which can complement the course's focus on object-oriented design.
この本はリファクタリング手法を紹介します。これにより、学習者は既存のコードの設計を改善できます。
As a classic book that covers best practices and idioms for Java programming, this book can be used as a reference for the course.
Provides a comprehensive introduction to Java programming, which can be helpful for learners who are new to the language.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Mastering Object-oriented Programming in Java 8.
Object-Oriented Design
Most relevant
The Java Object-Oriented Approach (Java SE 11 Developer...
Most relevant
Making Your Java 8 Code More Object-oriented
Most relevant
Object-oriented Design with C#
Most relevant
Object-oriented Programming in C#
Most relevant
UI&UX Design , Animation And Material design In Javafx
Most relevant
Salesforce Development: Process Automation and Logic
Most relevant
Teach teens computing: Object-oriented Programming in...
Most relevant
Making Your C# 7 Code More Functional
Most relevant
Our mission

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.

Affiliate disclosure

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.

© 2016 - 2024 OpenCourser