06.09.2014 Views

Bases de datos: Software libre - Universitat Oberta de Catalunya

Bases de datos: Software libre - Universitat Oberta de Catalunya

Bases de datos: Software libre - Universitat Oberta de Catalunya

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

© FUOC • 71Z799014MO 13 <strong>Bases</strong> <strong>de</strong> <strong>datos</strong> en PostgreSQL<br />

Veamos ahora la diferencia entre atributos y variables <strong>de</strong> instancia, que pue<strong>de</strong><br />

parecer más sutil.<br />

Un atributo es la vista externa <strong>de</strong> una propiedad estática <strong>de</strong> un objeto. La representación<br />

interna pue<strong>de</strong> variar, los atributos pue<strong>de</strong>n implementarse también<br />

con métodos. Tomemos como ejemplo el objeto punto con los atributos<br />

que se muestran a continuación:<br />

Punto<br />

+ x: float<br />

+ y: float<br />

+ radio: float<br />

+ ángulo: float<br />

Los atributos <strong>de</strong> un punto pue<strong>de</strong>n <strong>de</strong>finirse en coor<strong>de</strong>nadas angulares o rectangulares;<br />

en este caso, es posible conocer ambas representaciones. En la<br />

implementación <strong>de</strong> estos atributos, dos pue<strong>de</strong>n ser variables <strong>de</strong> instancia y<br />

los otros dos se implementan como métodos, que se calculan a través <strong>de</strong> los<br />

primeros.<br />

Des<strong>de</strong> el exterior no <strong>de</strong>be ser posible conocer la representación elegida internamente.<br />

Pue<strong>de</strong> cambiarse la implementación <strong>de</strong> los atributos sin alterar la interfaz.<br />

En algunos casos pue<strong>de</strong> incluso permitirse al sistema la elección <strong>de</strong> la<br />

representación interna <strong>de</strong> un atributo <strong>de</strong>l mismo modo que una operación elige<br />

entre varios métodos disponibles.<br />

2.4.1. Atributo frente a variable <strong>de</strong> instancia<br />

Un atributo especifica una cualidad <strong>de</strong> un objeto; una variable <strong>de</strong> instancia especifica<br />

cómo se almacenan los valores para esa cualidad.<br />

Consi<strong>de</strong>remos tres objetos, nombre, foto, ví<strong>de</strong>o, <strong>de</strong> los que necesitamos conocer el tamaño<br />

y prever, así, el espacio necesario para almacenarlos en disco.<br />

Los atributos<br />

Un atributo pue<strong>de</strong> ser almacenado<br />

en una variable o calculado<br />

por un método.<br />

En esta situación tenemos que:<br />

• El atributo es el mismo, porque su lectura tiene el mismo significado.<br />

• Cada objeto implementa el atributo <strong>de</strong> manera diferente. Sin importar la implementación,<br />

externamente todos los atributos entregan el mismo tipo <strong>de</strong> valor. Por ejemplo:<br />

– El nombre pue<strong>de</strong> utilizar un byte como variable <strong>de</strong> instancia, porque el tamaño <strong>de</strong> un<br />

nombre no pue<strong>de</strong> ser mayor que 255 caracteres, o se pue<strong>de</strong> implementar un método<br />

que calcule el tamaño en tiempo <strong>de</strong> ejecución.<br />

– La foto utilizará dos o cuatro bytes.<br />

– El ví<strong>de</strong>o pue<strong>de</strong> almacenar el valor <strong>de</strong> tamaño en múltiplos <strong>de</strong> K.<br />

• Cada objeto pue<strong>de</strong> tener implementaciones alternativas que se adapten a las circunstancias.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!