Los datos privados de la clase del son un patrón del diseño en la programación de computadora usada para encapsular cualidades de la clase y su manipulación.

Documentación estándar

Las categorías siguientes de la documentación para el patrón privado del diseño de los datos de la clase del siguen el precedente del estilo de la documentación del patrón del diseño fijado por la cuadrilla de cuatro .

Nombre y clasificación

; Nombre del patrón: Se sabe este patrón como el patrón privado del diseño de los datos de la clase del . ; Clasificación del patrón: Este patrón es un patrón estructural .

Intento

El patrón privado del diseño de los datos de la clase del intenta reducir la exposición de cualidades limitando su visibilidad. Reduce el número de cualidades de la clase encapsulándolas en solo objeto de los datos del . Permite que el diseñador de la clase quite escribe el privilegio de las cualidades que se piensan para ser fijadas solamente durante la construcción, incluso de los métodos de la clase de la blanco.

También conocido como

PIMPL (puesta en práctica privada)

Motivación

Una clase puede exponer sus cualidades (variables de la clase) a la manipulación cuando la manipulación es no más deseable, e. después de la construcción. Usar diseño de datos privado de la clase el patrón previene esa manipulación indeseable.

Una clase puede tener cualidades mutables de una sola vez que no puedan ser el declarado final. Usar este diseño el patrón no prohibe a ajuste de una sola vez de ésos cualidades de la clase.

La motivación para este patrón del diseño viene de la meta del diseño del estado de protección de la clase reduciendo al mínimo la visibilidad de sus cualidades (datos).

Aplicabilidad

Este patrón del diseño se aplica a cualquier clase en cualquier lengua orientada al objeto.

Estructura

Participantes

Colaboración

Consecuencias

Las consecuencias de usar este patrón del diseño incluyen el siguiente:
El controlar escribe el acceso a las cualidades de la clase;
Separación de datos de los métodos que la utilizan;
Encapsulado de la inicialización de la cualidad de la clase (datos); y
Proporcionando el nuevo tipo del final: final del después del constructor .

Puesta en práctica

El patrón privado del diseño de datos de la clase soluciona los problemas arriba extrayendo una clase de datos del para la clase targed y dando la clase de la blanco citar como ejemplo un caso de la clase de datos extraída del .

la clase de datos del expone cada cualidad (variable o característica) a través de un comprador del .
La clase de datos del expone cada cualidad que deba cambiar después de la construcción a través de un organismo del .

Código de la muestra

El código siguiente de C# ilustra una oportunidad de utilizar el patrón privado del diseño de datos de la clase: lang=" del círculo público de la clase { radio doble privado; color privado del color; origen privado del punto; círculo público (radio, color del color, origen dobles del punto) { this.origin = origen; } circunferencia doble pública { conseguir {vuelta 2 * Math.radius; } } diámetro doble público { conseguir {vuelta 2 * this.radius; } } drenaje del vacío del público (gráficos de los gráficos) { //. } } El radio del de las cualidades, el color del, y el origen del antedicho no deben cambiar después del constructor del círculo del () . Observar que la visibilidad es limitada ya por scoping ellos como privado, pero hacer métodos del círculo del de la clase puede todavía modificarlos.

Aunque el marcado de cualidades de clases como el const del (o el final o inalterable en otros lenguajes de programación) restrinja su manipulación, las cualidades arriba se fijan en el constructor y por lo tanto no se pueden marcar como tal.

Exceso de la exposición de las cualidades crea un tipo (undesirable) de acoplamiento entre los métodos que tienen acceso a esas cualidades. Para reducir la visibilidad de las cualidades y reducir así el acoplador, ejecutar el patrón privado del diseño de datos de la clase, como sigue: lang=" del clase pública CircleData { radio doble privado; color privado del color; origen privado del punto; CircleData público (radio, color del color, origen dobles del punto) { this.origin = origen; } radio doble público { conseguir {this.radius de vuelta; } } color público del color { conseguir {this.color de vuelta; } } origen público del punto { conseguir {this.origin de vuelta; } } } círculo público de la clase { circleData privado de CircleData; círculo público (radio, color del color, origen dobles del punto) { this.circleData = nuevo CircleData (radio, color, origen); } circunferencia doble pública { conseguir {this.Radius de vuelta * Math.PI; } } diámetro doble público { conseguir {this.Radius de vuelta * 2; } } drenaje del vacío del público (gráficos de los gráficos) { //. } }

La clase del círculo del en el código resultante tiene una cualidad del tipo CircleData para encapsular las cualidades expuestas previamente a todos los métodos del círculo del de la clase. Esa encapsulación evita que los métodos cambien las cualidades después del constructor del círculo del () . Nota, sin embargo, que cualquier método del círculo del puede todavía recuperar los valores de las cualidades encapsuladas.

Aplicaciones sabidas

Patrones relacionados

Ver el patrón estructural para los patrones relacionados.

  • Zenithic
  • David Crowley
    Random links:Veazie, Maine | Carretero Braxton | George Edwards | Isla de Southampton | Tiempo-Colono (Victoria)

  • © 2007-2008 enciclopediaespana.com; article text available under the terms of GFDL, from en.wikipedia.org
    ="http://pagead2.googlesyndication.com/pagead/show_ads.js">