我想知道用C++中的多個純虛擬方法創建抽象類是好還是不好?C++中的大型抽象類是好還是不好?
例如像執行會話發起協議的對話框某些情況下,我們發現,它可以使用橋接模式來實現。但是對於常見操作而言,抽象基類會導致產生一個非常大的抽象類。現在從性能角度看,使用和實現這樣的類有什麼作用?
考慮我們每一位有它自己的實現不同的對話框。 (例如:InviteDialog,RegisterDialog,InfoDialog,...)
應用橋接模式:忽略執行
class IIDialog{
public:
/*there are multiple pure virtual methodes at least 15*/
virtual int32_t SendResponse(ISipMessage* response) = 0;
protected:
/*there are multiple methods that use pure virtual methods*/
int32_t Send_Response(){retun SendResponse(response);}
}
class IInviteDialog : public IIDialog
{
/*Implemet virtual methods*/
}
class IRegisterationDialog : public IIDialog
{
/*implement virtual methode*/
}
其他部分(即使用上述類實現真正的實現和摘要)
由於
有一大類從設計的角度來看,更往往不是壞的,無論是抽象的或沒有。 – juanchopanza
,如果你強調這個開銷,你可能會發現一個24/7服務器*可能會在一個月內爲你節省大約2-3秒的CPU時間。我可以有把握地說,如果你有一個大的虛擬桌面佈局,你需要更加重要的事情來節省那幾秒鐘,比如爲什麼你最初有這麼大的虛擬桌面。 – WhozCraig
在設計的開始,我選擇使用繼承來實現這些類。但是我發現使用繼承可以使類的客戶端具有類型轉換。當使用派生類時,阻止類的客戶端從類型轉換,我決定應用橋接模式。在橋樑模式中,我們需要確定共同性和變異性。通過這樣做,我發現了很多共同性操作。我必須在基於Gof書的抽象類中有共同的操作。 我想知道你的建議是什麼? –