【发布时间】:2011-11-29 13:12:29
【问题描述】:
如果我有一个将被实例化的类,它需要引用每个类都相同的数据和/或函数。应该如何处理以遵循正确的编程实践
示例(在 PHP 中):
class Column {
$_type = null;
$_validTypes = /* Large array of type choices */;
public function __construct( $type ) {
if( type_is_valid( $type ) ) {
$_type = $type;
}
}
public function type_is_valid( $type ) {
return in_array( $type, $_validTypes );
}
}
然后每次创建一个 Column 时,它都会保存 $_validTypes 变量。这个变量只需要在内存中定义一次,所有创建的列都可以引用静态函数type_is_valid,该静态类将保存$_validTypes变量,只声明一次。
静态类的想法,比如ColumnHelper 或ColumnHandler 是处理这个问题的好方法吗?或者有没有办法在这个类中保存静态数据和方法?还是为每个列重新定义$_validTypes 是一种不错的做事方式?
【问题讨论】:
标签: php static static-methods static-classes