This course extends object-oriented analysis and design by using design patterns to create interactive applications. A survey of established design patterns will provide you with a foundation for more complex software applications. Finally, you will identify problematic software designs by consulting a code smells catalogue.
You will be able to:
- Demonstrate how to use design patterns to address user interface design issues after completing this course.
- Determine the best design pattern to address a specific application design problem.
- Make use of design principles (e.g., open-closed, dependency inversion, least knowledge).
- Evaluate code by spotting and refactoring anti-patterns.
- Use the model-view-controller design pattern.
1. Introduction to Design Patterns: Creational & Structural Patterns
- What is a Design Pattern?
- Creational, Structural, and Behavioural Patterns
- Singleton Pattern
- Factory Method Pattern
- Facade Pattern
- Adapter Pattern
- Composite Pattern
- Proxy Pattern
- Decorator Pattern
2. Behavioural Design Patterns
- Template Method Pattern
- Chain of Responsibility Pattern
- State Pattern
- Command Pattern
- Observer Pattern
3. Working with Design Patterns & Anti-patterns
- MVC Pattern
- Open/Closed Principle
- Dependency Inversion Principle
- Composing Objects Principle
- Interface Segregation Principle
- Principle of Least Knowledge
- Code Smells