Course info
January 20, 2017
1h 59m

Simply using an OO language like Java does not make your program object oriented. In fact, when used incorrectly, OO-language features can make your program bloated, overly complex, and impossible to maintain. This course, Java Fundamentals: Object-oriented Design, teaches you how to write effective production-quality OO systems by leveraging the basic principles of good OO design. It assumes you know the nuts and bolts of Java, and goes beyond those to teach you how to write effective, production-quality code in Java, or any other OO language. You will learn how to structure your code to be highly maintainable and easy to modify. You'll learn about the pitfalls of many common idioms (like getters and setters and too-open subclassing). You'll also see the SOLID principles used to solve real-world programming issues as well as see a lot of code that demonstrates the principles. When you're done with the class, you'll have a solid understanding of good OO structure and principles, and be able to apply those principles to your own work.

About the author
About the author

Allen is an internationally recognized trainer, agile-process consultant, speaker, and author. He specializes in Lean/Agile infusion and tuning, software architecture, and web-application programming using open-source toolsets. Allen's worn every hat from grunt programmer to CTO. He's built compilers, operating systems, massively scalable web applications, and mobile apps. He's written a dozen books and hundreds of magazine articles on practical programming topics, and currently blogs for Dr. Dobb's Journal ( Allen speaks regularly at conferences, worldwide, and works for both startups and Fortune-50 companies. Contact him at:, or on Twitter at @allenholub.

More from the author
Swift in Depth
5h 5m
11 Sep 2015