There are a number of concepts and methodologies that encompass what is known as object-oriented design. In this course, you'll explore object-oriented design concepts such as Single responsibility, Open/Closed, Liskov substitution, Interface segregation and Dependency inversion (SOLID), Unified Modeling Language (UML), class responsibility collaboration (CRC) cards, and General Responsibility Assignment Software Patterns (GRASP).
Learning Objectives
Object-Oriented Programming Basics
- start the course
- recognize the basic concepts of OOP
- create and instantiate a C#/Java object
- explain what abstract classes are and illustrate with a sample
- explain what encapsulation is and illustrate with a sample
- explain what inheritance is and illustrate with a sample
- demonstrate the concept of polymorphism and show how it works with a code sample
Object-Oriented Design Basics
- recognize the basic concepts of OOD
- recognize the basic concepts of UML and recommended tools
- demonstrate the role of use cases in OOD
- demonstrate how to model classes and objects using UML
- demonstrate the role of state charts in OOD
- demonstrate how to create UML activity diagrams
- recognize the basic concepts of Don't Repeat Yourself (DRY)
- demonstrate the use of a Class Responsibility Collaboration card
Practice: Object-Oriented Programming and Design
- recognize the basic concepts of object-oriented programming: encapsulation, inheritance, polymorphism, and abstraction
SOLID
- recognize the basic concepts of SOLID
- recognize the basic concepts of the Single Responsibility Principle
- recognize the basic concepts of the Open/Closed Principle
- recognize the basic concepts of the Liskov Substitution Principle
- recognize the basic concepts of the Interface Segregation Principle
- recognize the basic concepts of the Dependency Inversion Principle
GRASP
- recognize the basic concepts of GRASP
- recognize the role of the Information Expert principle in the GRASP pattern
- recognize the role of the Creator principle in the GRASP pattern
- recognize the role of the Low Coupling principle in the GRASP pattern
- recognize the role of the High Cohesion principle in the GRASP pattern
- recognize the role of the Controller principle in the GRASP pattern
- recognize the role of Polymorphism in the GRASP pattern
- recognize the role of the Pure Fabrication principle in the GRASP pattern
- recognize the role of the Indirection principle in the GRASP pattern
- recognize the role of Protected Variations in the GRASP pattern
Practice: SOLID and GRASP Principles
- recognize the basic concepts of the SOLID and GRASP object-oriented design principles