我有時會遇到,主要是在使用舊代碼時,一個類只能將調用轉發給另一個類。想象一下,有一個老的控制器可以控制某些東西,但其中一些控制器可以用於一個新的類。現在,舊的控制器將調用新的類接口。類接口複製
Ex。
class Controller {
public:
void addObject(const std::string & id,
const Object * obj) {
m_Wrk.addObject(id, obj);
}
private:
Worker m_Wrk;
};
class Worker {
public:
void addObject(const std::string & id,
const Object * obj) {
//do actual adding
}
};
現在,想着測試軟件時,接口可能需要在這兩個班進行測試,因爲它並不主要是因爲它是必要的檢查控制器的測試工作人員的變化是在控制器更難。
這種用法特別糟糕,還是可以在上面解釋的現有代碼中使用這種設計。
感謝
我說的'm_Wrk'應該是一個指針嗎? – alexeykuzmin0
錯字。它並不一定需要。 –
這實質上不是PIMPL。我想我很難理解這個問題。您能否重新說明這一點: 現在,在考慮測試軟件時,可能需要在兩個類中測試接口,並且它在控制器中比較困難,因爲它並不主要,因爲它需要檢查工作人員更改控制器測試。 這種用法特別糟糕,或者可以在上面解釋的已有代碼中使用這種設計。 – SmittyBoy