Explore the power of modular programming to build applications with Java Project Jigsaw!
About This Video
Modularity is a general concept which applies to writing and implementing a program or computing system as a number of unique modules, rather than as a single, monolithic design. If you're interested in building a standardized interface to enable the modules to communicate you would need to partition your environment of software constructs into distinct modules to help minimize coupling, optimize application development, and reduce system complexity.
The course starts by diving deep into Advanced Object Oriented concepts like inner classes, object composition, encapsulation, and polymorphism which will be demonstrated through a simple extension to a vehicle modeling example. We will then demonstrate how to correctly managing external dependencies in Java with the use of Maven. Here, you will build strong foundations on firstly how to correctly structure a Java Maven project, before working through a hands-on example of parsing a CSV file using the Apache Commons library, providing a clear example of the benefits of using third-party libraries to accomplish common tasks. Moving along, you will be exposed to one of the major new features of Java 9: Project Jigsaw. Project Jigsaw is one of the most substantial changes to the Java programming language in recent years, we will discuss the goals of the project, as well as the impact it will have on our world. We will conclude the product with an example of how a modularise a larger and more complicated Java application. Taking this course will teach you how to correctly structure Java projects, starting with Maven dependency management, and moving on to project Jigsaw - the modularisation of the Java language. Filled with examples to leverage external dependencies to solve common problems, such as parsing a JSON file you will also learn how to use inner classes the right way.
Exploring concepts of composition, encapsulation, and polymorphism will enable scalability down to small computing devices, Improved application performance; Making it easier for developers to construct and maintain libraries and large applications.