Join Elisabeth Robson for an in-depth discussion in this video Additional resources, part of Foundations of Programming: Design Patterns.
In this course, we've given you an introduction to design patterns. But as you can probably tell, this is a topic you can spend the rest of your programming career exploring. Once you've learned the basics of design patterns, you can explore the other fundamental patterns described in our book, Head First Design Patterns. And the book, Design Patterns: Elements of Reusable Object Oriented Software. You can also delve in to many other more domain specific and language specific patterns that are available. Search on the web for design patterns, and you'll find many resources available for you to explore.
But we don't recommend that you go out and learn every single pattern that's out there. While there are hundreds of patterns, there are only a few that you'll use on a regular basis. The more you practice with these core patterns, the better you'll get at identifying places in your code where you need flexibility and places where your code varies and should be decoupled from other code. As you learn to do this on your own, you may find that you're using patterns without even knowing it. Because you've developed the habit and the skill of structuring your code so that it's flexible and resilient from the start.
Design patterns is a great topic to explore once you've got some programming experience under your belt. If you're feeling like you need a little more of a foundation in your programming skills before tackling design patterns in depth, there are a few other lynda courses we'd recommend. The course Foundations of Programming: Object-Oriented Design, is a great place to start learning about object-oriented design. If you're new to object oriented programming, or you just need a refresher, this course will provide a great foundation on which to build with design patterns.
If you're new to Java and want to explore design patterns in Java further, we can recommend two courses. Java Essential training and Java Advanced training. Both of these courses are also taught using Eclipse. And if you'd like to explore the Eclipse IDE in more depth, Java Essential training is a great introduction to using Eclipse as well. Once you've learned some patterns, you may find that you want to go back to old code and re-factor it to incorporate a design pattern. Refactoring code means to improve code that's already written, without changing what it does.
As you've learned in this course, the goal of design patterns is to help you write code that is resilient and flexible. If you think a system that you've written could benefit from refactoring to incorporate a design pattern, one course you might want to check out is Foundations of Programming: Refactoring Code. It's a good idea for you to revisit the content in this course a few times. You'll find new ideas and things that have new meaning each time. And as you develop your skills with design patterns, you'll discover new depths of understanding of the patterns.
So thanks for joining us for Foundations of Programming Design Patterns. See you next time.
- What are design patterns?
- Encapsulating code that varies with the strategy pattern
- Setting behavior dynamically
- Implementing the observer pattern
- Creating chaos with inheritance
- Extending behavior with composition
- Dealing with multithreading and the singleton pattern
- Revising the design for a state machine
- Encapsulating iteration with the collection pattern
- Encapsulating object creation with the factory method pattern