Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> instead of using setters/getters because it "gets in the way"

In my opinion it genuinely does get in the way. I want to add a member variable to an object - in many languages (JS, C#, Python for example) you can just declare it and move along, knowing that you can switch it to a property later if you need special handling.

In Java, however, for future maintenance I have to write a `public int getPaula()`, `public void setPaula(int brillant)`. This not only violates YAGNI, it slows things down in the physical "I have to type more" sense.



While it would seem that getters and setters vs public fields are very similar, there's a catch at least in the C# world - if you have a raw public field and later decide to change it to a property, that breaks your public interface and you have to rebuild stuff against your library.

Thankfully C# makes declaring getters and setters easy from the start, so it's not an issue to use them:

public int SomeField { get; private set; }

That gives you a public property called SomeField which can be retrieved, but which can only be set privately by the class. I'd hate having to write GetBlah and SetBlah; it's damn ugly.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: