[Bug 695281] New: Review Request: perl-Devel-EnforceEncapsulation - Find access violations to blessed objects

bugzilla at redhat.com bugzilla at redhat.com
Mon Apr 11 10:16:58 UTC 2011


Please do not reply directly to this email. All additional
comments should be made in the comments box of this bug.

Summary: Review Request: perl-Devel-EnforceEncapsulation - Find access violations to blessed objects

https://bugzilla.redhat.com/show_bug.cgi?id=695281

           Summary: Review Request: perl-Devel-EnforceEncapsulation - Find
                    access violations to blessed objects
           Product: Fedora
           Version: rawhide
          Platform: All
        OS/Version: Linux
            Status: NEW
          Severity: medium
          Priority: medium
         Component: Package Review
        AssignedTo: nobody at fedoraproject.org
        ReportedBy: paul at city-fan.org
         QAContact: extras-qa at fedoraproject.org
                CC: notting at redhat.com, fedora-package-review at redhat.com
   Estimated Hours: 0.0
    Classification: Fedora
      Story Points: ---


Spec URL:
http://subversion.city-fan.org/repos/cfo-repo/perl-Devel-EnforceEncapsulation/branches/fedora/perl-Devel-EnforceEncapsulation.spec
SRPM URL:
http://www.city-fan.org/~paul/extras/perl-Devel-EnforceEncapsulation/perl-Devel-EnforceEncapsulation-0.50-3.fc16.src.rpm

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).



This package is used in the author tests of Perl::Critic.

-- 
Configure bugmail: https://bugzilla.redhat.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the package-review mailing list