使用getter和setter的优点是什么 - 只能获取和设置 - 而不是简单地使用公共字段来存储这些变量?
如果getter和setter做的不仅仅是简单的get/set,我可以非常快地解决这个问题,但我并不是100%清楚如何:
public String foo;
Run Code Online (Sandbox Code Playgroud)
更糟糕的是:
private String foo;
public void setFoo(String foo) { this.foo = foo; }
public String getFoo() { return foo; }
Run Code Online (Sandbox Code Playgroud)
而前者需要很少的样板代码.
我目前正在开发一个简单的Java游戏,有几种不同的模式.我扩展了一个主要的Game类,将主要逻辑放在其他类中.尽管如此,主要的游戏类仍然非常沉重.
在快速浏览一下我的代码后,其中大部分是Getters and Setters(60%),而其余部分则是游戏逻辑真正需要的.
一些谷歌搜索声称Getters和Setters是邪恶的,而其他人声称他们是良好的OO练习和伟大的程序所必需的.
所以我该怎么做?应该是哪个?我应该为我的私人变量更改我的Getters和Setter,还是应该坚持使用它们?
我目前在Qt等C++工作.我正在拥有具有私有数据成员和公共成员函数的类.我有班级中可用的数据成员的公共getter和setter.
现在我的问题是,如果我们的类中有数据成员的getter和setter,那么将这些数据成员设置为私有的重点是什么?我同意基类中的私有数据成员听起来合乎逻辑.但除此之外,拥有私人会员以及他们的吸气者和制定者对我来说似乎并不合乎逻辑.
或者我们可以将所有变量都公开,以便根本不需要getter和setter吗?拥有那些是一个好习惯吗?我知道让私有成员确保数据抽象,但让getter和setter实际上可以很容易地访问这些变量.欢迎任何关于此的指示.
简单地阅读上面的文章我发现getter和setter是糟糕的OO设计,应该避免它们反对Encapsulation和Data Hiding.在这种情况下,如何在创建对象时避免它,以及如何将对象模型对象考虑在内.
如果需要吸气剂或固定剂,可以使用其他替代品吗?
谢谢.