我正在尋找關於以下方面的一些方向,我是OOP的新手,但到了那裏卻認爲我的理解力不足導致我陷入了兔子洞或者我只是過多地思考事物,併成爲肛門。一類中的可選依賴關係
基本上我有一個叫做「CurlRequest」的主類,唯一的目的是執行curl請求,提供一個url和params它返回我一些html。這門課的作品和功能如預期,我很滿意。
我將這個類用於一些項目,但對於其中一個我想跟蹤我的請求的性能。嘗試,失敗,傳遞等等,所以我創建了一個靜態類來管理我的所有計數器。我在我的CurlRequest類的不同區域放置類似以下的計數器引用。
PerformanceTracker::Increment('CurlRequest.Attempted');
PerformanceTracker::Increment('CurlRequest.Passed');
PerformanceTracker::Increment('CurlRequest.Failed');
我有這些大約10個左右我的同班同學捲曲請求期間跟蹤各種事情,我也用我的PerformanceTracker類我做其他類。
然而,像上面提到的,我只是想爲我的項目之一做這件事,所以找到我的自我的情況下,我的原始CurlRequest類和改變與性能計數器在它的情況。
我的問題是,他們是一種方式,我可以使用相同的類爲任何項目,並選擇使用PerformanceTracker類或不。我想到的顯而易見的方式是將一個$選項參數傳入該類,然後在所有計數器周圍都有if語句,但不禁讓人想起它的混亂。
if ($this->options['perfCounter'] == true) {
PerformanceTracker::Increment($this->owner . '.CurlRequest.Failed');
}
這也增加了很多額外的代碼給這個類。