Android中是否存在避免Getter / Setter方法的替代解决方案?
我已经在使用getter / setter方法,但是在链接下面说,避免使用getter / setter方法。
如何使用不使用getter / setter google solution来访问集合对象?
答案 0 :(得分:1)
getter和setter的使用是一个很长的论点。有理由支持和反对。 在大多数情况下,说使用setter确保封装是不正确的。
之间没有区别:
object.x = value;
和
object.setX(value);
这里讨论的一些例子:
Advantage of set and get methods vs public variable
Are getters and setters poor design? Contradictory advice seen
答案 1 :(得分:0)
从您提供的链接:
遵循常见的面向对象编程实践并在公共接口中使用getter和setter是合理的,但在类中,您应该始终直接访问字段。
从中我们学到两件事:
public
,这不尊重OOP原则; getter/setter
。在类中编写代码时,应始终直接访问该字段。以下是直接访问的访问速度:没有JIT,直接字段访问速度比调用一个简单的getter快约3倍。使用JIT(直接字段访问与访问本地一样便宜),直接字段访问比调用一个简单的getter快约7倍。
答案 2 :(得分:0)
从您提供的链接:
然而,这在Android上是一个坏主意。虚拟方法调用比实例字段查找要昂贵得多。遵循常见的面向对象编程实践并且在公共界面中使用getter和setter 是合理的,但是在类中,您应该始终直接访问字段。
基本上它意味着你可以拥有getter和setter,但是当你想访问类自己的字段时,直接访问它。换句话说,你应该这样做:
class Foo {
private int bar;
public int getBar() { return bar; }
public void setBar(int value) { bar = value; }
public someOtherMethod() {
// here if you want to access bar, do:
bar = 10;
System.out.println(bar);
// instead of:
// setBar(10);
// System.out.println(getBar());
}
}
// but outside of this class, you should use getBar and setBar