Name : perl-Devel-EnforceEncapsulation
| |
Version : 0.51
| Vendor : Fedora Project
|
Release : 26.fc37
| Date : 2022-07-22 07:11:00
|
Group : Unspecified
| Source RPM : perl-Devel-EnforceEncapsulation-0.51-26.fc37.src.rpm
|
Size : 0.01 MB
| |
Packager : Fedora Project
| |
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).
|
RPM found in directory: /vol/rzm3/linux-fedora-buffet/alt/risc-v/repo/fedora/37/76833/riscv64/Packages/p |