2014-10-06 53 views
1

我有两个PHP类,ResultCounterResultDetail,第一个依赖于第二个,但第二个不依赖于第一个。我感到这些类应该正式链接,但我不知道该怎么做。链接相关类但不能扩展

我曾考虑过创建第一个子类,但这不起作用,因为第一个有许多(但有限数量)的第二个实例。

下面是这两个类的基础知识,让您知道我在说什么。

class ResultCounter { 
    private $W; 
    private $L; 
    private $D; 
    private $T; 
    private $A; 
    private $X; 
    private $B1; 
    private $B2; 

    function __construct() { 
     $this->W = new ResultDetail; 
     $this->L = new ResultDetail; 
     $this->D = new ResultDetail; 
     $this->T = new ResultDetail; 
     $this->A = new ResultDetail; 
     $this->X = new ResultDetail; 
     $this->B1 = new ResultDetail; 
     $this->B2 = new ResultDetail; 
    } 

    // some other functions 
} 

class ResultDetail { 
    public $count = 0; 
    public $batfirst; 
    public $batsecond; 

    // some functions but don't ever reference ResultCounter 
} 

在项目中有时还需要单独的ResultDetail实例。

有没有办法链接这些类,以便ResultCounter明确依赖于ResultDetail?是否足够在构造函数中定义实例,或者我应该不担心这个问题?

+0

紧耦合(您已经拥有)通常被认为是不好的做法。为什么你想添加更多的“链接”?我会换另一种方式,并考虑让ResultCounter类在构造函数中使用一个IResultDetailFactory – Steve 2014-10-06 21:13:07

回答

2

我不会为此担心。在任何应用程序类中将依赖于其他类。如果它们保存在同一个源代码树中,那么通常会认为它们可能是依赖的。在任何情况下,如果ResultDetail由于任何原因失踪,当有人试图构建一个ResultCounter,那么PHP会给他们一个错误,说它找不到ResultDetail