¿En qué se diferencian los dispositivos de acceso y los mutadores? Un ejemplo y una explicación serían geniales.¿Cuál es la diferencia entre los métodos de acceso y mutador?
7
A
Respuesta
14
Un de acceso es un método de clase usado para leer miembros de datos, mientras que un mutador es un método de clase usado para cambio miembros de datos.
He aquí un ejemplo:
class MyBar;
class Foo
{
public:
MyBar GetMyBar() const { return mMyBar; } // accessor
void SetMyBar(MyBar aMyBar) { mMyBar = aMyBar; } // mutator
private:
MyBar mMyBar;
}
Es la mejor práctica para que los miembros de datos private
(como en el ejemplo anterior) y sólo acceder a ellos a través de descriptores de acceso y mutadores. Esto es por las siguientes razones:
- Usted sabe cuándo se accede a ellas (y puede depurar esto a través de un punto de interrupción).
- El mutador puede validar la entrada para asegurarse de que se ajusta dentro de ciertas restricciones.
- Si necesita cambiar la implementación interna, puede hacerlo sin romper un montón de código externo; en su lugar, simplemente modifique la forma en que los accesors/mutators hacen referencia a los datos internos.
3
class foo
{
private:
int a;
public:
int accessA() const { return(a);}
void mutateA(const int A) { a = A;}
}
También conocidos como getters y setters y probablemente una docena de otros términos.
Cuestiones relacionadas
- 1. ¿Cuál es la diferencia entre los métodos iterator y view?
- 2. acceso y mutador?
- 3. ¿Cuál es la diferencia entre los especificadores de acceso y los modificadores de acceso?
- 4. ¿Cuál es la diferencia entre `##` y `hashCode`?
- 5. ¿Cuál es la diferencia entre los archivos .class y .dex?
- 6. ¿Cuál es la diferencia entre los paquetes android.opengl y javax.microedition.khronos.opengles?
- 7. Diferencia entre los métodos Map.put y Map.putAll?
- 8. ¿Cuál es la diferencia entre todos los métodos estáticos y la aplicación de un patrón singleton?
- 9. Java: ¿Cuál es la diferencia entre estos métodos de construcción
- 10. Cuál es la diferencia entre las expresiones de consulta LINQ y los métodos de extensión
- 11. ¿Cuál es la diferencia entre los métodos de escritura y publicación de Ruby?
- 12. ¿Cuál es la diferencia entre los métodos element() y getFirst() en la clase LinkedList?
- 13. ¿Cuál es la diferencia entre los métodos de agregar y ofrecer en una cola en Java?
- 14. ¿Cuál es la diferencia entre los métodos de índice B-Tree y GiST (en PostgreSQL)?
- 15. ¿Cuál es la diferencia entre los métodos invalidate() y postInvalidate() de Android?
- 16. ¿Cuál es la diferencia entre los métodos dup y clone de Ruby?
- 17. ¿Cuál es la diferencia entre ".equals" y "=="?
- 18. ¿Cuál es la diferencia entre KVC y Properties?
- 19. ¿Cuál es la diferencia entre dict() y {}?
- 20. Cuál es la diferencia entre = y: =
- 21. ¿Cuál es la diferencia entre los certificados rapidSSL y geotrust?
- 22. ¿Cuál es la diferencia entre los archivos apklib y jar?
- 23. ¿Cuál es la diferencia entre [indefinido] y [,]?
- 24. ¿Cuál es la diferencia entre "$^N" y "$ +"?
- 25. ¿Cuál es la diferencia entre los archivos .so y .a?
- 26. ¿Cuál es la diferencia entre los eventos Control.Enter y Control.GotFocus?
- 27. ¿Cuál es la diferencia entre los atributos "wairole" y "role"?
- 28. ¿Cuál es la diferencia entre los archivos .lib y .a?
- 29. ¿Cuál es la diferencia entre todos los proyectos y subproyectos
- 30. ¿cuál es la diferencia entre:.! y: r !?
Los métodos de acceso (o getter) le permiten acceder a los miembros de una estructura de datos, mientras que los métodos de Mutator (o setter) le permiten cambiar los valores de una estructura de datos. – Chad