You are on page 1of 3

Propiedades Una de las consecuencias de proporcionar la encapsulacin es que tenemos que escribir mtodos de acceso para proporcionar una

interfaz pblica a los campos de datos. Delphi tambin nos permite utilizar las propiedades de esta interfaz pblica. Ya hemos usado extensivamente las propiedades cuando se trabaja con componentes VCL de Delphi y en este ejemplo vemos la manera de crearlos (propiedades) de nuestras propias clases. Ex 4,3 paso 1 Definicin de las propiedades Clase TClient en ClientU.pas tiene dos elementos de datos privados, y FAccNo FCName (lneas 6-7 del ejemplo 4.2 el paso 1, y por debajo). Vamos a introducir las propiedades de stos, llamados AccNo y CNAME, a travs de la declaracin del tipo de ClientU.pas (15-16 lneas ms abajo). Nos mueve el conjunto y obtener los mtodos de la seccin pblica (paso 1 Ejemplo 4.2 lneas 11-14) en la seccin privada de la declaracin de tipo (8-11 lneas ms abajo). A continuacin, aadimos las declaraciones de bienes a la seccin pblica (lneas 15-16), pero no interfieren con los datos subyacentes o los artculos FAccNo FCName. La seccin de implementacin se mantiene inalterado. 4 TClient = class (TObject) Privada 5 6 FAccNo: string; 7 FCName: string; 8 / / mtodos de acceso privados ahora 8 GetAccNo funcin: string; 9 GetCName funcin: string; 10 Procedimiento SetAccNo (const AnAccNo: string); 11 Procedimiento SetCName (ACName const: string); 12 pblica 13 constructor Create (ACName, AnAccNo: string); 14 destructor Destroy; reemplazar; 15 propiedades AccNo: cadena de lectura escritura GetAccNo SetAccNo; 16 propiedades CNAME: cadena leda GetCName escribir SetCName; 17 final; Una propiedad tiene visibilidad pblica (por ejemplo, la lnea 15). Su declaracin se introduce por la palabra propiedad, seguido del nombre de la propiedad y el tipo. Por convencin los nombres de propiedad son los mismos que los nombres de datos subyacentes, pero sin el anterior "F". Luego viene la palabra clave de lectura seguida de la asignacin de lectura entre la propiedad y los datos subyacentes. Aqu se utiliza la misma funcin GetAccNo que hemos utilizado antes para suministrar el valor del campo FAccNo datos. (GetAccNo ahora se declara como privado: la lnea 8 arriba) Luego viene la palabra clave de escritura seguido por la asignacin de escritura, y usamos la misma funcin SetAccNo que hemos usado antes para modificar el valor del campo FAccNo datos. Por eso, utilizamos la misma Get Set ... y ... los mtodos que antes para los mtodos de mapeo con acceso

basado en la propiedad, aunque estos mtodos de acceso se encuentra a menudo declara como privado. Tenga en cuenta que se declaran los mtodos de asignacin de Get y Set y los campos de datos subyacentes, antes de declarar las propiedades. Si no lo hacemos, el compilador no sabe de la existencia de estos datos y los mtodos cuando se encuentra con la declaracin de propiedad. Y ah estn! Hemos declarado dos propiedades. Ex 4,3 paso 2 Utilizacin de las propiedades Ya estamos familiarizados con el uso de las propiedades de los componentes de RAD. Cambiar las llamadas a mtodos en ObjectAccessU.pas (ejemplo 4.1, el paso 2) a las referencias de propiedad de la siguiente manera (52-53 lneas ms abajo): procedimiento de TfrmAccessObject.btnShowClick (Sender: TObject); comenzar {.. si la declaracin como antes .. } lblName.Caption: = 'Nombre:' + NewClient.CName; lblAccNo.Caption: = 'Acc No:' + NewClient.AccNo; final; Ejecute el programa. La operacin en la pantalla es igual que antes. En este ejemplo vemos cmo las propiedades de uso de mtodos de acceso. Las propiedades proporcionan las ventajas de encapsulacin mismos mtodos de acceso. Por ejemplo, si en el futuro tenemos que cambiar la representacin de los subyacentes (privado) de datos que podemos hacerlo y luego hacer la traduccin tipo necesario en los mtodos de la propiedad de asignacin de acceso. La interfaz externa sigue siendo el mismo y el cliente mediante la propiedad sigue siendo consciente de que ha habido algn cambio. Como se ilustra en el ejemplo 4.4, tambin podemos hacer el control de acceso, la comprobacin de rango, la validacin de datos, la iniciacin del evento y as sucesivamente en los mtodos de acceso que necesitamos. Pero si no hay ninguna diferencia esencial entre el uso de las propiedades y el uso de mtodos de acceso, cul es el problema? Por qu no seguir con los mtodos de acceso? Como veremos en el siguiente paso, en determinadas condiciones, las propiedades nos permiten simplificar un programa acabar con el Get Set ... y ... los mtodos de mapeo, manteniendo las ventajas de la encapsulacin.

Cmo funciona genricos Los trminos genricos o tipos genricos de describir el conjunto de las cosas de una plataforma que puede ser parametrizado por el tipo. Los medicamentos genricos a largo plazo pueden hacer referencia a los tipos genricos o mtodos genricos, es decir, los procedimientos genricos y funciones genricas. Los genricos son un conjunto de herramientas de extraccin que permiten la disociacin de un algoritmo (tal como un procedimiento o funcin) o una estructura de datos (tal como una clase, interfaz o registro) a partir de uno o ms tipos particulares de que la estructura de datos o algoritmo utiliza . Un tipo de mtodo o de datos que utiliza otro tipo en su definicin puede hacerse ms general, mediante la sustitucin de uno o ms tipos particulares con los parmetros de tipo. Luego de agregar los parmetros de tipo de una lista de parmetros de tipo en el mtodo o la declaracin de la estructura de datos. Esto es similar a la forma en que usted puede hacer un procedimiento ms general mediante la sustitucin de las instancias de una constante de su cuerpo con un nombre de parmetro y aadiendo el parmetro de la lista de parmetros del procedimiento. Por ejemplo, una clase TMyList que mantiene una lista de objetos (del tipo TObject) puede ser ms reutilizables y con seguridad de tipos mediante la sustitucin de los usos de TObject con un nombre de parmetro de tipo (como la "T"), y aadiendo el parmetro de tipo a la lista de la clase de tipo de parmetro para que se convierta TMyList <T>. Usos particulares (instanciaciones) de un tipo genrico o mtodo puede ser realizado mediante el suministro de argumentos de tipo para el tipo o mtodo genrico en el punto de uso. El acto de argumentos de tipo que suministran efectivamente construye un nuevo tipo o mtodo mediante la sustitucin de las instancias del tipo de parmetro en la definicin genrica, con el argumento de tipo correspondiente. Por ejemplo, la lista puede ser utilizado como <Double> TMyList. Esto crea un nuevo tipo, TMyList <Double>, cuya definicin es idntica a la TMyList <T> la excepcin de que todas las instancias de "T" en la definicin se sustituyen por "doble". Cabe sealar que los genricos como un mecanismo de abstraccin duplicados gran parte de la funcionalidad del polimorfismo, pero con caractersticas diferentes. Desde un nuevo tipo o mtodo se construye en el momento de creacin de instancias, se pueden encontrar errores de tipo antes, en tiempo de compilacin en lugar de en tiempo de ejecucin. Esto tambin aumenta las posibilidades de optimizacin, pero con un trade-off - cada ejemplar aumenta el uso de la memoria de la ltima aplicacin que se ejecuta, posiblemente resultando en un menor rendimiento.

You might also like