扩展班级或传递vars?

时间:2014-03-26 12:47:40

标签: php

我有一个充满方法的类,这些方法依赖于一些变化的变量,例如。我改变了类正在改变的表名。

处理这种情况的最佳方法是什么?

  1. 创建一个设置变量的类,并在此类中扩展具有所有方法的类。

  2. 使用方法创建类并传入构造函数中的变量。

  3. 另一种方式?

  4. 决定采用哪种方法处理这种情况的一般经验法则是什么?

    此:

    class Happy extends Emotions{
    
        protected $table = 'happy';
    
    }
    
    class Emotions {
    
    
         //lots of methods
    }
    

    或者:

    class Emotions {
    
      private $table;
    
      public function __construct($table){
    
          $this->table = $table;
      }
       //lots of methods
    }
    

1 个答案:

答案 0 :(得分:0)

两种方式都有一些优点和缺点 如果您使用第一种方式,则意味着您创建一个新类并将其扩展到主Emotion类。 这种方法会增加维护成本,即您必须管理多个类。

如果采用第二种方法,会增加复杂性。

我的建议是,如果你是第二种方式的单人演示,它将增加你编写它时可以处理的复杂性,并且它会降低维护成本,因为它是单一的。

如果你是一个团队,请选择第一种方法。