大佬教程收集整理的这篇文章主要介绍了Perl中的数据封装?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在过去4年写了相当大的脚本,并尝试以OO风格做到这一点.我知道Perl< 6并不是真的OO. 所以我不喜欢的一点是,我没有数据封装,这意味着没有一个变量对于一个包(“class”)是真正私有的(或者也许我不知道该怎么做). 我有这样的东西(只有我的脚本的一小部分)
package TAG; sub new () { my $classname = shift; my $self = {}; bless( $self,$classname ); $self->initialize(); return $self; } sub initialize() { my $self = shift; # Only an example,I have a long list of items in this "class" $self->{ID} = "NA"; } sub setID() { ... } sub getID() { ... }
在我的主要脚本中,我以这种方式使用它:
@H_684_4@my $CurrentItem; $CurrentItem = new TAG(); $CurrentItem->getID()但
$CurrentItem->{ID} = "Something";
也在工作,但我宁愿,这是不可能的.
有没有办法更好地封装我在“类”中使用的数据,所以我(或其他用户)被迫使用get和set方法?
This paper讨论了诸如闭包,标量和使用Tie :: SecureHash的有限访问哈希等选项,更喜欢最后的方法.
This blog认为,在perl中有时候应该加以封装,尽管这些意见提出了一些这样做的负面影响.
您还可以查看moose的Perl 5对象.这是为了鼓励使用encapsulated objects.
以上是大佬教程为你收集整理的Perl中的数据封装?全部内容,希望文章能够帮你解决Perl中的数据封装?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。