[ol7_optional_archive] perl-Devel-EnforceEncapsulation-0.50-8.el7.noarch

Name:perl-Devel-EnforceEncapsulation
Version:0.50
Release:8.el7
Architecture:noarch
Group:Development/Libraries
Size:40094
License:GPL+ or Artistic
RPM: perl-Devel-EnforceEncapsulation-0.50-8.el7.noarch.rpm
Source RPM: perl-Devel-EnforceEncapsulation-0.50-8.el7.src.rpm
Build Date:Wed Apr 30 2014
Build Host:ca-buildj3.us.oracle.com
Vendor:Oracle America
URL:http://search.cpan.org/dist/Devel-EnforceEncapsulation/
Summary:Find access violations to blessed objects
Description:
Encapsulation is the practice of creating subroutines to access the properties
of a class instead of accessing those properties directly. The advantage of
good encapsulation is that the author is permitted to change the internal
implementation of a class without breaking its usage.

Object-oriented programming in Perl is most commonly implemented via blessed
hashes. This practice makes it easy for users of a class to violate
encapsulation by simply accessing the hash values directly. Although less
common, the same applies to classes implemented via blessed arrays, scalars,
filehandles, etc.

This module is a hack to block those direct accesses. If you try to access a
hash value of an object from its own class, or a superclass or subclass, all
goes well. If you try to access a hash value from any other package, an
exception is thrown. The same applies to the scalar value of a blessed scalar,
entry in a blessed array, etc.

To be clear: this class is NOT intended for strict enforcement of
encapsulation. If you want bullet-proof encapsulation, use inside-out objects
or the like. Instead, this module is intended to be a development or debugging
aid in catching places where direct access is used against classes implemented
as blessed hashes.

To repeat: the encapsulation enforced here is a hack and is easily
circumvented. Please use this module for good (finding bugs), not evil (making
life harder for downstream developers).

Related Packages (Show Changelog) (Show Filelist)