Is defining get/set methods for every field overkill?
Tue Nov 22 21:00:58 UTC 2022
On Tuesday, 22 November 2022 at 20:36:51 UTC, []() {}() wrote:
>
From a software engineering perspective, what justification can
their possibly be, for allowing (by default, and with no language
mechanism to prevent it) any code in the same module as this
class (including a tightly coupled, but otherwise fully
specificed class), to override the specification of this class?
How does that enhance encapsulation, as argued in that article?
public synchronized class Counter
{
static import core.atomic;
private:
int count = 0;
public:
void incrementCounter()
{
if ((count + 1) < 0)
{
// you might want to handle this
}
else
core.atomic.atomicOp!"+="(this.count, 1);
}
int displayCounter()
{
return count;
}
}
More information about the Digitalmars-d-learn
mailing list