PHP 特征来保持类的整洁

示例

随着时间的流逝,我们的类可能会实现越来越多的接口。当这些接口具有许多方法时,我们类中的方法总数将变得非常大。

例如,假设我们有两个接口和一个实现它们的类:

interface Printable {
    public function print();   
    //其他界面方法...
}

interface Cacheable {
    //接口方法
}

class Article implements Cachable, Printable {  
    //在这里,我们必须实现所有接口方法
    public function print(){ {
        /* code to print the article */ 
    }
}

代替在Article类中实现所有接口方法,我们可以使用单独的Traits来实现这些接口,从而使类保持较小,并将接口实现的代码与类分开。

通过示例,要实现Printable接口,我们可以创建以下特征:

trait PrintableArticle {
    //在这里实现接口方法
    public function print() {
        /* code to print the article */ 
    }
}

并让类使用特征:

class Article implements Cachable, Printable {
    use PrintableArticle;
    use CacheableArticle; 
}

主要的好处是我们的接口实现方法将与该类的其余部分分离,并存储在一个特征中,该特征负责为该特定类型的对象实现接口。