UsefulLinks
Computer Science
Programming
Object-Oriented Programming and Design
1. Introduction to Programming Paradigms
2. Fundamentals of Object-Oriented Programming
3. The Four Pillars of OOP
4. Key Language Constructs and Concepts
5. Relationships Between Classes
6. Principles of Object-Oriented Design
7. Design Patterns
8. Object-Oriented Analysis and Modeling
9. Advanced OOP Topics
6.
Principles of Object-Oriented Design
6.1.
SOLID Principles
6.1.1.
Single Responsibility Principle
6.1.1.1.
One Reason to Change
6.1.2.
Open Closed Principle
6.1.2.1.
Open for Extension Closed for Modification
6.1.3.
Liskov Substitution Principle
6.1.3.1.
Substitutability of Subtypes
6.1.4.
Interface Segregation Principle
6.1.4.1.
Client-Specific Interfaces
6.1.5.
Dependency Inversion Principle
6.1.5.1.
Depend on Abstractions Not Concretions
6.2.
GRASP Principles
6.2.1.
Information Expert
6.2.1.1.
Assigning Responsibility to Class with Most Information
6.2.2.
Creator
6.2.2.1.
Assigning Object Creation Responsibility
6.2.3.
Controller
6.2.3.1.
Handling System Events
6.2.4.
Low Coupling
6.2.4.1.
Minimizing Dependencies
6.2.5.
High Cohesion
6.2.5.1.
Grouping Related Responsibilities
6.2.6.
Polymorphism Principle
6.2.6.1.
Assigning Responsibility for Behavior with Variations
6.2.7.
Pure Fabrication
6.2.7.1.
Creating Classes for Design Purposes
6.2.8.
Indirection
6.2.8.1.
Decoupling Objects
6.2.9.
Protected Variations
6.2.9.1.
Shielding from Change
6.3.
Other Design Principles
6.3.1.
DRY Principle
6.3.1.1.
Don't Repeat Yourself
6.3.1.2.
Avoiding Code Duplication
6.3.2.
KISS Principle
6.3.2.1.
Keep It Simple Stupid
6.3.2.2.
Simplicity in Design
6.3.3.
YAGNI Principle
6.3.3.1.
You Ain't Gonna Need It
6.3.3.2.
Avoiding Unnecessary Features
6.3.4.
Law of Demeter
6.3.4.1.
Principle of Least Knowledge
6.3.4.2.
Limiting Object Interactions
Previous
5. Relationships Between Classes
Go to top
Next
7. Design Patterns