为什么仅将Perl OO用作数据封装技术?

为什么仅将Perl OO用作数据封装技术?,第1张

概述我正在尝试使用已编写的Perl API来使用Moose OO系统,但对象之间绝对没有涉及的继承,聚合或组合. 并且,除了用于调试的单个可选角色之外,还没有涉及角色或混合. 就目前我所看到的,使用Moose似乎只是增加了大量的复杂性和编译时开销,但收效甚微. 为什么要使用Moose或OO作为一种简单的封装方法,而不是使用将代码打包到Perl模块中的更简单的技术? 为了澄清,我完全相信使用Moose正 我正在尝试使用已编写的Perl API来使用Moose OO系统,但对象之间绝对没有涉及的继承,聚合或组合.

并且,除了用于调试的单个可选角色之外,还没有涉及角色或混合.

就目前我所看到的,使用Moose似乎只是增加了大量的复杂性和编译时开销,但收效甚微.

为什么要使用Moose或OO作为一种简单的封装方法,而不是使用将代码打包到Perl模块中的更简单的技术?

为了澄清,我完全相信使用Moose正确完整地在Perl中执行OO的许多优点.我只是不明白为什么使用OO作为简单的封装技术?我不是在支持Perl OO的主观论点之后.我希望我在这里使用OO范例时缺少一些优势,我根本就没有看到atm.

This question在Perl中有关于数据封装的一系列优秀观点.注:我不是在谈论强制封装,系统阻止你查看你不应该在哪里,更多的只是在一个包中 *** 作你想要使用的数据的方法.

在这里使用OO有一些优势吗?

编辑1:经过一些侦探工作后,我刚刚看到Perl API的作者也大量参与了Moose框架的维护和支持.

编辑2:我刚看到this question从一个略微不同的角度问类似的东西.看起来我的回答实际上是“你为什么要首先添加复杂功能?”,特别是考虑到上面编辑2中的信息.

可能的答案

有问题的API似乎只使用Moose OO系统以防止命名空间污染.

通过使用Perl软件包,这也可以做得更充分,正如@amon在下面的评论中指出的那样,使用标准软件包机制可能会很快变得麻烦. BTW非常感谢所有评论,以帮助澄清我的要求.

解决方法 每种情况都是不同的,无论您选择使用Moose还是其他对象框架(或者根本没有),实际上都归结为您计划要做的事情以及您的要求.

用Moose编写有问题的系统可能没有任何直接的优势,但请考虑以下因素:

>您可以免费访问Moose的元对象系统,因此您可以以明确定义的方式查询对象以获取有用的信息
>您可以使用Moose的继承系统扩展提供的类;因此,即使他们自己不使用继承,如果需要,框架已经到位,您可以这样做
>您可以放心,因为您知道系统是基于Perl最广泛部署和经过良好测试的对象框架构建的.
>人们都知道穆斯,这意味着如果出现问题,获得问题答案的可能性会更高.

IOW,使用流行工具有固有的价值.

总结

以上是内存溢出为你收集整理的为什么仅将Perl OO用作数据封装技术?全部内容,希望文章能够帮你解决为什么仅将Perl OO用作数据封装技术?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1236296.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存