Métodos Abstractos

Un método abstracto es uno que, mas que proveer un servicio representa un servicio o categoría. La idea es que al definir una clase base abstracta se indica un conjunto de métodos que deberían estar definidos en todas las clases que heredan de la clase base abstracta. Es una declaración que indica la necesidad de definir su funcionalidad en las clases descendientes, pero que no se define en la clase base.

Para conseguir este efecto, lo normal en Perl es que nos aseguremos que nuestro método abstracto produce una excepción con el mensaje de error adecuado. Cuando el número de métodos abstractos es grande puede suponer un ahorro utilizar un método genérico como este:

package Abstract;

sub ABSTRACT {
  my $self = shift;
  my ($file, $line, $method) = (caller(1))[1..3];
  
  die("call to abstract method ${method} at $file, line $line\n");
}

1;
Obsérve el uso de la función caller introducida en la sección 1.15.10 para determinar la localización exacta de la llamada.

Casiano Rodríguez León
Licencia de Creative Commons
Principios de Programación Imperativa, Funcional y Orientada a Objetos Una Introducción en Perl/Una Introducción a Perl
por Casiano Rodríguez León is licensed under a Creative Commons Reconocimiento 3.0 Unported License.

Permissions beyond the scope of this license may be available at http://campusvirtual.ull.es/ocw/course/view.php?id=43.
2012-06-19