Useful Links
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
Principles of Object-Oriented Design
SOLID Principles
Single Responsibility Principle
One Reason to Change
Open Closed Principle
Open for Extension Closed for Modification
Liskov Substitution Principle
Substitutability of Subtypes
Interface Segregation Principle
Client-Specific Interfaces
Dependency Inversion Principle
Depend on Abstractions Not Concretions
GRASP Principles
Information Expert
Assigning Responsibility to Class with Most Information
Creator
Assigning Object Creation Responsibility
Controller
Handling System Events
Low Coupling
Minimizing Dependencies
High Cohesion
Grouping Related Responsibilities
Polymorphism Principle
Assigning Responsibility for Behavior with Variations
Pure Fabrication
Creating Classes for Design Purposes
Indirection
Decoupling Objects
Protected Variations
Shielding from Change
Other Design Principles
DRY Principle
Don't Repeat Yourself
Avoiding Code Duplication
KISS Principle
Keep It Simple Stupid
Simplicity in Design
YAGNI Principle
You Ain't Gonna Need It
Avoiding Unnecessary Features
Law of Demeter
Principle of Least Knowledge
Limiting Object Interactions
Previous
5. Relationships Between Classes
Go to top
Next
7. Design Patterns