DEV Community

Discussion on: Avoid getters and setters whenever possible

Collapse
 
dimpiax profile image
Dmytro Pylypenko

You have just shown bad design. Reason not in getter/setter, but in approach.
If you open properties to public you must have reason why. But not like exception with debt example.

If replace getter/setter theme with singleton or composite – and write in the same manner, the result that all is bad, will be the same.

Main point: use features properly. We have instruments in our belts, and to hammer nails with a saw is not the best choice.

Collapse
 
scottshipp profile image
scottshipp

Hi Pilipenko, my goal with this article was to show bad design. All of the code examples here are things I would not do, including the debt example. I tried to give guidelines for what I would do in the section at the end, but I probably could follow up with code examples of what I think people should do.

Collapse
 
dimpiax profile image
Dmytro Pylypenko

But your topic name is "Avoid getters and setters whenever possible", not "Bad design in getter/setter". This article just discredits specific area of programming, but not educational.

We have a lot of useless articles like "Don't use OOP", "Don't use functional programming", "Why declarative worse that imperative" and so on. But whole idea in right usage, and neither getter/setter neither functional or AOP are not bad.

Thread Thread
 
xtofl profile image
xtofl

I must say you have a point: we lack a vast body of "how to do X without violating design flaw Q".

This year I learned about Domain Driven Design, and the Onion Architecture, where they design apis around use cases instead of data. Maybe there is some source of positive guidelines we can tap.