我正在用Symfony 2/Doctrine创建项目,并尝试实现特性。到目前为止,小规模的试用没有问题,但我通常在深入复杂项目之前做UML类和序列图。什么是UML设计对象(一个或多个)用来符号化PHP特性,就我所知,它可以被看作行为?有什么干净的方法来这样做吗?非常感谢您的回答!尼古拉
mwngjboj1#
PHPTrait基本上是UML抽象类或UML类模板,通过UML Generalization Relationship利用多重继承符号连接到used-in类
PHP
Trait
另见:
从PHP 5.4.0开始,PHP实现了一个名为Traits的代码重用方法。Traits是单继承语言(如PHP)中代码重用的机制。Trait旨在减少单继承的某些限制,方法是使开发人员能够在不同类层次结构中的几个独立类中自由重用方法集。Traits和类组合的语义以降低复杂性的方式定义,并且避免了与多重继承和Mixins相关联的典型问题。Trait类似于类,但只用于以细粒度和一致的方式对功能进行分组。它不可能单独示例化Trait。它是对传统继承的补充,并支持行为的水平组合;也就是说,不需要继承就可以应用类成员
Traits
Mixins
u5rb5r592#
在我看到的最早的一篇文章中,角色/特性是用UML表示的,用一条线将角色/特性连接到类中的方法/函数。http://scg.unibe.ch/archive/papers/Scha03aTraits.pdf
2条答案
按热度按时间mwngjboj1#
PHP
Trait
基本上是UML抽象类或UML类模板,通过UML Generalization Relationship利用多重继承符号连接到used-in类另见:
从
PHP
5.4.0开始,PHP
实现了一个名为Traits
的代码重用方法。Traits
是单继承语言(如PHP
)中代码重用的机制。Trait
旨在减少单继承的某些限制,方法是使开发人员能够在不同类层次结构中的几个独立类中自由重用方法集。Traits
和类组合的语义以降低复杂性的方式定义,并且避免了与多重继承和Mixins
相关联的典型问题。Trait
类似于类,但只用于以细粒度和一致的方式对功能进行分组。它不可能单独示例化Trait
。它是对传统继承的补充,并支持行为的水平组合;也就是说,不需要继承就可以应用类成员u5rb5r592#
在我看到的最早的一篇文章中,角色/特性是用UML表示的,用一条线将角色/特性连接到类中的方法/函数。http://scg.unibe.ch/archive/papers/Scha03aTraits.pdf