Table of Contents

Clean Code notes

Liskov substitution principle

What is a type

It is a bag of operations

Subtypes

A subtype is a type that may be used as another type.

Refused bequest

This occurs when a subtype does something unexpected from the point of view of the user of the super type.

Every refused bequest/LSP violation is a latent open/closed principle violation.

Representative rule

Representatives of things do not share the relationships of the things they represent. So, while geometrically a square is a rectangle, the class that represents a square is not a subtype of the class that represents a rectangle.

Single responsibility principle

Open closed principle