Skip to content
This repository has been archived by the owner on Nov 4, 2024. It is now read-only.

Mutable classes should not inherit from Immutable ones #14

Open
punkstarman opened this issue Oct 18, 2017 · 0 comments
Open

Mutable classes should not inherit from Immutable ones #14

punkstarman opened this issue Oct 18, 2017 · 0 comments

Comments

@punkstarman
Copy link

A mutable class that inherits from an immutable one does not respect the Liskov Substitution Principle, a.k.a. the L in SOLID. An immutable object and its responses to getters can be cached indefinitely whereas a mutable object does not allow this.

For example, AbstractPersistentArray inherits from AbstractPersistentImmutableArray, adding setters that render what should be immutable, per the contract of AbstractPersistentImmutableArray.

This may just be a naming issue. If a suitable replacement for the term Immutable were found that doesn't imply a specific contract, for instance Readable.

# for free to subscribe to this conversation on GitHub. Already have an account? #.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant