Code Smell 35 - State as Properties

Code Smell 35 - State as Properties

Maxi Contieri
·Nov 27, 2020·

2 min read

Subscribe to my newsletter and never miss my upcoming articles

Play this article

When an object changes its state the best solution is to change the attribute, isn't it?


  • Mutability

  • Attributes polluting

  • Setters


1 - Model states as mathematical set inclusion.

2 - State is accidental, take it away from the object.


  • State diagrams

Sample Code



If we want to be extreme, we should consider every setter to be a potential state change. Linters can warn us. But we might end up getting too many false positives.


  • Over Design

  • Performance issues (if a serious benchmark supports it).


  • Mutation


This technique is very elegant but can lead to over design. For example changing a visual component its color should be a counterexample to this smell.

We should be aware and very caution like with any other smell.

They are hints and not rigid rules.


More info


Photo by Tom Crew on Unsplash

First make the change easy (warning: this might be hard), then make the easy change.

Kent Beck

This article is part of the CodeSmell Series.

Share this