有没有办法在Coldfusion中编写可重用代码(Traits
),如PHP或Javascript
因为这似乎是编写特征和在需要它们的不同类中使用的好主意。
答案 0 :(得分:0)
我看了看:http://php.net/manual/en/language.oop5.traits.php
我发现以下PHP代码很有趣:
<?php
trait A {
public function smallTalk() {
echo 'a';
}
public function bigTalk() {
echo 'A';
}
}
trait B {
public function smallTalk() {
echo 'b';
}
public function bigTalk() {
echo 'B';
}
}
class Talker {
use A, B {
B::smallTalk insteadof A;
A::bigTalk insteadof B;
}
}
class Aliased_Talker {
use A, B {
B::smallTalk insteadof A;
A::bigTalk insteadof B;
B::bigTalk as talk;
}
}
?>
我接受这样的事情。
CFML与其他编程语言的不同之处在于它具有许多内置函数。我一直在使用物体。我使用的对象是application.cfc
,FW / 1控制器,DI / 1 / FW / 1服务,DI / 1 / FW / 1 Bean和ORM后退对象。
这些中的每一个都有内置的期望和用法。它们都不是普通的物体。我写了一个普通的对象已经很久了。我宁愿使用功能更丰富的对象。
CFML还在其变量上具有成员函数。这使它们成为类似的对象。
最后但并非最不重要的,如果我真的必须从多个位置提取功能,我只会在另一个位置内创建一个对象的实例。
免责声明:我目前正在使用大约50个cfc和数百个函数的应用程序。所有这些都是必需的,但有些重构可能会有用。
我可以看到一两个特征可能有用的地方,但我可以先考虑其他事情。