Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Class::Virtually::AbstUser(Contributed Perl DocumClass::Virtually::Abstract(3)

NAME
       Class::Virtually::Abstract - Compile-time enforcement of	Class::Virtual

SYNOPSIS
	 package My::Virtual::Idaho;
	 use base qw(Class::Virtually::Abstract);

	 __PACKAGE__->virtual_methods(qw(new foo bar this that));

	 package My::Private::Idaho;
	 use base qw(My::Virtual::Idaho);

	 sub new { ... }
	 sub foo { ... }
	 sub bar { ... }
	 sub this { ...	}
	 # oops, forgot	to implement that()!!  Whatever	will happen?!

	 # Meanwhile, in another piece of code!
	 # KA-BLAM!  My::Private::Idaho	fails to compile because it didn't
	 # fully implement My::Virtual::Idaho.
	 use My::Private::Idaho;

DESCRIPTION
       This subclass of	Class::Virtual provides	compile-time enforcement.
       That means subclasses of	your virtual class are required	to implement
       all virtual methods or else it will not compile.

BUGS and CAVEATS
       Because this relies on import() it is important that your classes are
       used instead of required.  This is a problem, and I'm trying to figure
       a way around it.

       Also, if	a subclass defines its own import() routine (I've done it)
       Class::Virtually::Abstract's compile-time checking is defeated.

       Got to think of a better	way to do this besides import().

AUTHOR
       Original	idea and code from Ben Tilly's AbstractClass
       http://www.perlmonks.org/index.pl?node_id=44300&lastnode_id=45341

       Embraced	and Extended by	Michael	G Schwern <schwern@pobox.com>

SEE ALSO
       Class::Virtual

perl v5.24.1			  2016-08-06	 Class::Virtually::Abstract(3)

NAME | SYNOPSIS | DESCRIPTION | BUGS and CAVEATS | AUTHOR | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Class::Virtually::Abstract&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help