Design patterns are pre-written solutions for specific problems in object-oriented programming. It's key to remember these patterns are meant to address procedural issues rather than the intended usage. For example, a design pattern wouldn't answer the question of how to make a payroll system, but rather a question such as how to undo an object being automatically changed. This introduction to design patterns video explains this concept in more detail.
- View Offline
As you start to get more familiar with object-oriented development, you'll hit…the concept of Design Patterns.…These are well-tested solutions to common problems and issues we run into in…software development.…Now these are not business solutions. Design Patterns don't deal with bank…accounts and customer classes.…They work at a different level than that.…Think of them as best practices, suggestions for how you might arrange your own…classes and objects to accomplish a result.…So they don't deal with questions like, oh, I need to create an email app for…a phone, or I need to make a payroll system, instead they deal with more general issues.…
Say you're working through your class design, and you realize that if one of your…objects changes, it needs to let several other objects know, and you wonder if…there is a good way to do that.…Well, there are multiple ways you could deal with that, but there is a…well-tested proven approach that's been given the name of the Observer Design Pattern.…Or another example let's say you realize an object will be changed by a lot of…
Let Simon Allardice introduce you to the terms—words like abstraction, inheritance, polymorphism, subclass—and guide you through defining your requirements and identifying use cases for your program. The course also covers creating conceptual models of your program with design patterns, class and sequence diagrams, and unified modeling language (UML) tools, and then shows how to convert the diagrams into code.
- Why use object-oriented design (OOD)?
- Pinpointing use cases, actors, and scenarios
- Identifying class responsibilities and relationships
- Creating class diagrams
- Using abstract classes
- Working with inheritance
- Creating advanced UML diagrams
- Understanding object-oriented design principles