El
Wikipedia article on the Memento pattern no menciona nada acerca de la encapsulación, de hecho, el ejemplo dado allí captura exactamente el estado mantenido en una variable privada en un Memento.
encapsulación ('Un lenguaje mecanismo para restringir el acceso a algunos de los componentes del objeto') se refiere a la forma en que tiene que escribir código con el fin de cambiar el estado interno de un objeto.
Sin embargo, el estado interno de un objeto podría haber sido determinado por una entrada externa, ya que el contenido de una cadena depende del archivo desde el que se leyó o de la información que se recibió de la red. El estado de una casilla de verificación depende de si el usuario lo ha marcado o no, mientras que el campo correspondiente de la clase podría tener acceso privado y el estado podría ser de solo lectura para otras clases.
Proteger campos poniéndolos bajo acceso privado sirve para ayudar al desarrollador a mantener los estados de los objetos en un estado constante, es decir, evitar que los campos estén configurados en un estado inconsistente fuera de esa clase (por ejemplo, si el valor de el campo A
depende del valor del campo B
).
No tiene nada que ver con "privacidad" en el sentido de que se considera que esta información es secreto. Por supuesto, uno podría escribir otra clase que luego lea los campos privados serializados y los ponga a disposición del público en una clase diferente o incluso podría editar el archivo serializado, pero no estoy seguro de qué ganaría con esto.
el [artículo de Wikipedia sobre el patrón Memento] (http://en.wikipedia.org/wiki/Memento_pattern) no tiene ninguna ocurrencia de 'encapsulación'. –
@Andre, consulte el siguiente enlace. http://www.javacamp.org/designPattern/ – BOSS
Un enlace más para su referencia. http://sourcemaking.com/design_patterns/memento – BOSS