MooseX::AttributeTree

Phần mềm chụp màn hình:
MooseX::AttributeTree
Các chi tiết về phần mềm:
Phiên bản: 0.04
Ngày tải lên: 14 Apr 15
Nhà phát triển: Christopher J. Madsen
Giấy phép: Miễn phí
Phổ biến: 9

Rating: nan/5 (Total Votes: 0)

Các lớp có thể kế thừa các thuộc tính từ các lớp cha của họ. Nhưng đôi khi bạn muốn có một thuộc tính để có thể kế thừa giá trị của nó từ một đối tượng cha. Ví dụ, đó là cách làm việc kiểu CSS trong HTML.
MooseX :: AttributeTree là một mô-đun Perl cho phép bạn áp dụng các đặc điểm TreeInherit để bất kỳ thuộc tính trong lớp học của bạn. & Nbsp; này thay đổi cách thức accessor của thuộc tính hoạt động. Khi đọc giá trị của thuộc tính, nếu không có giá trị đã được thiết lập cho các thuộc tính trong đối tượng này, các accessor sẽ trả về giá trị từ đối tượng cha mẹ (mà bản thân nó có thể được thừa kế).
Các đối tượng phụ huynh không cần phải có cùng kiểu với các đối tượng trẻ em, nhưng nó phải có một phương pháp có tên tương tự như phương pháp accessor của thuộc tính (trừ khi bạn cung cấp một fetch_method). (Phương pháp của cha mẹ có thể là một thuộc tính accessor phương pháp, nhưng nó không có được.) Nếu phụ huynh không có phương pháp đúng, bạn sẽ nhận được một lỗi thời gian chạy nếu con cố gắng gọi cho nó.
Theo mặc định, MooseX :: AttributeTree hy vọng sẽ có được các đối tượng cha mẹ bằng cách gọi phương thức cha mẹ của đối tượng. Tuy nhiên, bạn có thể sử dụng phương pháp nào để lấy các liên kết bằng cách đi qua các parent_link phù hợp với đặc điểm TreeInherit:
& Nbsp; có tổ tiên => (
& Nbsp; là => 'rw',
& Nbsp; isa => 'Object',
& Nbsp; weak_ref => 1,
& Nbsp;);
& Nbsp; có giá trị => (
& Nbsp; là => 'ro',
& Nbsp; đặc điểm => [TreeInherit => {'tổ tiên' parent_link =>}],
& Nbsp;);
Nếu phương thức trả về undef, sau đó dừng lại và thừa kế các accessor sẽ cư xử giống như một accessor bình thường. (Thông thường, parent_link sẽ là tên của một thuộc tính accessor phương pháp, nhưng nó không có được.)
Đôi khi nó không thuận lợi cho các đối tượng phụ huynh để có một phương pháp riêng cho từng thuộc tính mà một đối tượng trẻ em có thể muốn kế thừa. Trong trường hợp đó, bạn có thể cung cấp một fetch_method với đặc điểm TreeInherit.
& Nbsp; có other_value => (
& Nbsp; là => 'ro',
& Nbsp; đặc điểm => [TreeInherit => {fetch_method => 'get_inherited "}],
& Nbsp;);
Với fetch_method, các giá trị di truyền sẽ đến từ
& Nbsp; $ tự> huynh> get_inherited ('other_value');
thay vì thông thường
& Nbsp; $ tự> huynh> other_value ();
Nếu thuộc tính của bạn có một phương pháp ngữ, nó báo cáo dù các thuộc tính đã được cài đặt trên đối tượng đó. Các vị không có kiến ​​thức về bất kỳ giá trị mà có thể được thừa hưởng từ cha mẹ. Điều này có nghĩa rằng $ object-> has_value có thể trả về false mặc dù $ object-> giá trị sẽ trả về một giá trị (được thừa kế từ cha mẹ).
Tương tự như vậy, phương pháp rõ ràng hơn của thuộc tính (nếu có) sẽ xóa các thuộc tính chỉ trên đối tượng này, và sẽ không bao giờ ảnh hưởng đến một đối tượng cha.
Tóm tắt
& Nbsp; gói MyClass;
& Nbsp; sử dụng Moose;
& Nbsp; sử dụng MooseX :: AttributeTree ();
& Nbsp; còn cha, mẹ => (
& Nbsp; là => 'rw',
& Nbsp; isa => 'Object',
& Nbsp; weak_ref => 1,
& Nbsp;);
& Nbsp; có giá trị => (
& Nbsp; là => 'rw',
& Nbsp; đặc điểm => [qw / TreeInherit /],
& Nbsp;);

Yêu cầu :

  • Perl

Phần mềm tương tự

bandwidth
bandwidth

20 Feb 15

dkftpbench
dkftpbench

2 Jun 15

Phần mềm khác của nhà phát triển Christopher J. Madsen

mktime
mktime

2 Jun 15

VBinDiff
VBinDiff

2 Jun 15

Ý kiến ​​để MooseX::AttributeTree

Bình luận không
Nhập bình luận
Bật hình ảnh!