La programación orientada a objetos promueve el diseño
abstracto y el reuso de código. Una de sus principales ventajas
es la reducción en el tiempo de desarrollo
y mantenimiento de las aplicaciones. En versiones anteriores
de BBj se podía usar el sintaxis de objeto en lugar de mnemónicos
para promover mejor estructura en el código. Con BBj 6 pueden
ir mucho más allá. BBj 6 permite
clases definibles por el desarrollador. Una clase define
los datos (fields) y procedimientos (methods) relacionados
con un objeto de la aplicación, e.g. Clientes , Facturas,
Empleados, etc. Estos objectos pueden heredar características
de otros objetos facilitando el reuso de código y modelando
mejor el comportamiento de las realidades de la aplicación.
Este es un ejemplo del sintaxis de clases en BBj.
Class public Empleado extends Persona
field public BBjInt ID%
field public BBjString Nombre$
field public BBjString Telefono$
field public BBjNumber Salario
method public Empleado()
methodend
method public Empleado(BBjInt id, BBjString nombre$)
#ID = id
#Nombre$ = nombre$
methodend
method public BBjNumber salarioAnual()
methodret (12 * #Salario)
methodend
classend
gerente! = new Empleado(1, "María Rodríguez")
print gerente!.getNombre()
clerical! = new Empleado()
clerical!.setNombre("Juan Pérez")
print clerical!.getNombre() |
En este ejemplo, la clase Empleado hereda los campos y métodos
de la clase Persona además de añadir 4 campos
y 3 métodos
propios. La definición
comienza con Class y termina con classend. Los métodos
comienzan con method y terminan con methodend. Los
campos pueden usar tanto tipos de dato nativos a BBj como nuevos tipos
creados por el desarrollador. Esta clase implementa dos posibles
métodos
contructores para inicializar el Empleado. El primero Empleado() no
tiene argumentos y usa la inicialización predeterminada (default
constructor). El segundo Empleado(id, nombre$) permite inicializar
dos de los campos. Tanto los campos como los métodos están
designados como públicos
por lo que pueden accederse desde otras clases o programas
que tengan Empleados.
La clase define el objeto pero no lo crea. Para hacerlo concreto y asignarlo
a una variable se usa la función "new" con uno de los constructores.
Las variables de objeto terminan con el signo de exclamación
(!) como en versiones anteriores de BBj. El acceso a los
campos públicos es automático sin necesidad de crear métodos.
BBj define automáticamente setFieldname() para modificar un campo
público y getFieldname() para acceder
a su valor, como ocurre con setNombre() y getNombre() en
el ejemplo.
Al
encapsular los campos y los métodos del objeto, las clases
sirven como bloques al implementar una aplicación. La
herencia entre clases hace
más sencillo el reuso de código
y el control de acceso evita cambios no deseados en porciones
críticas de la clase. La metodología de objetos requiere
pensar en las aplicaciones de manera diferente que usando
procedimientos tradicionales pero una vez asimilada puede
traer grandes aumentos en productividad de desarrollo y mantenimiento.
En el CD de la conferencia se incluyó la aplicación demo
del pasado Techcon rediseñada usando objetos como muestra
de cómo usar la nueva metodología.
Es importante señalar que este sintaxis de objetos no requiere
que recodifique sus aplicaciones totalmente. Puede intercalar
el nuevo sintaxis con aplicaciones o estilos de codificación
existentes que siguen estando respaldados en BBj 6. Esto
permite usar nuevas metodologías
de desarrollo sin desechar librerías de código creadas
a través de
los años. El sintaxis de objetos usa reglas comunes
en otros lenguajes, facilitando la transición
de nuevos desarrolladores que conozcan otros lenguajes
que se basen en objetos.
En fin, las nuevas funciones de objetos en BBj 6 le permiten usar
nuevas metodologías para acelerar su desarrollo sin descartar
aplicaciones existentes. Para más detalles, dos de las
presentaciones de Techcon 2006 sobre el lenguaje están
disponibles abajo en formato PowerPoint.
Pueden acceder a documentación de los nuevos verbos en el manual
de referencia (enlaces abajo). Después
de la liberación
de BBj 6 el manual de uso será actualizado con detalles adicionales.
|