取势 明道 优术

作者为 扶 凯 发表

概要

package Point;
use Moose;

has 'x' => ( isa => 'Int', is => 'ro' );
has 'y' => ( isa => 'Int', is => 'rw' );

__PACKAGE__->meta->make_immutable;

 

描述

这 Moose 的元类( metaclass) API 提供了 make_immutable() 的方法,调用这个方法会对你的类做二样事.

  • 首先,这使得它更快.特别是对象的构造和 destruction (析构?)是有效的“内联”你的类,并不再调用元API.
  • 其次,你可以不再需要通过元类的 API 来做改变,如添加属性.在实践中,这不会是一个问题,因为你很少需要在第一次加载类之后做这些.

结论

我们强烈建议您让您的类,象这样成为不可改变的.它使你的代码要比原来快得多,只使用小小的编译时间来当做成本.这将在创建很多对象时显得尤其明显.

来了就留个评论吧! 1个评论