2015-03-05 17 views
5

Tôi đang tạo các dự án với Symfony2/Doctrine và cố gắng triển khai các đặc điểm. Cho đến nay không có vấn đề về tryouts nhỏ, nhưng tôi thường làm lớp UML và sơ đồ trình tự trước khi sâu trong các dự án phức tạp.Biểu diễn UML của đặc điểm PHP

Các đối tượng thiết kế UML được sử dụng để tượng trưng cho các đặc điểm PHP, có thể được xem như xa như tôi biết là hành vi? Có cách nào sạch sẽ để làm như vậy không?

Cảm ơn rất nhiều câu trả lời của bạn!

Nicolas

Trả lời

5

PHPTrait về cơ bản là UML Abstract Class hay UML Class Template kết nối với sử dụng trong lớp học với các UML Generalization Relationship sử dụng các đa kế thừa ký hiệu

enter image description here

Xem thêm:

  • Hình "UML Sơ đồ có một đặc điểm "trong bài viết Brendan Bates: Traits: The Right Way

  • Programmers: Is there a representation for mixins or traits on UML?

  • PHP Manual → Language Reference → Classes and Objects → Traits

    Tính đến PHP 5.4.0, PHP thực hiện một phương pháp tái sử dụng mã gọi Traits.

    Traits là cơ chế để sử dụng lại mã bằng các ngôn ngữ kế thừa đơn lẻ như PHP. A Trait được thiết kế để giảm một số giới hạn của thừa kế đơn bằng cách cho phép nhà phát triển sử dụng lại các phương thức một cách tự do trong một số lớp độc lập sống trong các phân cấp lớp khác nhau. Các ngữ nghĩa của sự kết hợp của Traits và các lớp được định nghĩa theo cách làm giảm độ phức tạp và tránh các vấn đề điển hình liên quan đến đa kế thừa và Mixins.

    A Trait tương tự như một lớp học, nhưng chỉ dành cho chức năng nhóm theo cách chi tiết và nhất quán. Đó là không thể tự mình tạo nhanh một số Trait.Nó là một bổ sung cho thừa kế truyền thống và cho phép thành phần ngang của hành vi; có nghĩa là, việc áp dụng các thành viên lớp mà không đòi hỏi thừa kế

+0

Bạn nói đúng, tôi Juste quên thực tế là thừa kế duy nhất là thực hiện PHP lựa chọn. Cám ơn – nbonniot

0

Như tôi thấy nó, một đặc điểm của PHP không có gì khác ngoài định nghĩa giao thức mà bạn tìm thấy bằng các ngôn ngữ khác. Giao thức là một số phần mở rộng chức năng cho lớp. Bạn thường sẽ mô hình hóa đó với một giao diện (Trait) và lớp sử dụng nó, nơi bạn vẽ một mối quan hệ <> từ lớp tới Trait.

Các vấn đề liên quan