在接口(OOP)中添加属性是一个好习惯吗

时间:2012-06-13 06:10:01

标签: php oop zend-framework

请参阅以下对象:

interface IMedia
{
    public function getThemed();
    public function getDownloadLink();
}

class Video implements IMedia
{
    public function getThemed() {}
    public function getDownloadLink() {}
}

如果有一些常见属性,例如:

public $size;
public $uploadedDate;
public $hitCounts;

他们可以加入IMedia吗?或者是否建议在那个地方使用抽象类?

2 个答案:

答案 0 :(得分:3)

@Muneer

首先,这是不可能的。接口不允许这样做。我建议做这样的事情:

interface IMedia {

}

abstract class AbstractMedia implements IMedia {
  public $property = "value";
}

答案 1 :(得分:0)

嗯,总的来说,你当然希望尽可能抽象。所以访问器/ mutator完全有意义,以避免仅为访问器/ mutator进行类型转换。现在将赢得引入一个仅用于属性实现的抽象类。