There’s a difference between complexity that’s inherent to the problem, and complexity that’s added by developers who have drunk architectural cool aid.
This is an example where all of the complexity is caused by rigid adherence to the most popular architectural patterns of about 10 years ago.
I’ve worked on code bases like this. It is a parody, but it’s not too far from reality.
Reading my original post i probably shouldn’t have said it’s how you should do it. I mean that lots of engineers created loads of pointless complexity with OOP
This is an example where all of the complexity is caused by rigid adherence to the most popular architectural patterns of about 10 years ago.
https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpris...
It looks completely ridiculous to modern eyes, but during peak OOP it was just how you should do it.
If you like simplicity then your fizz buzz implementation would be a few lines.