2017-02-24 67 views
1

我正在使用OpenGL和C++(使用Boost庫)創建一個3D遊戲引擎。我想不用說,這是一個工作的LOT。爲了減輕負載,我開始爲Boost中的事物創建包裝類,它們非常符合我的需求,而不是從頭開始創建相同的類。此外,我的命名方案與Boost和STL非常不同,所以我首先感覺到這使整個代碼庫中的事情保持一致。C++中的軟件體系結構是否創建包裝類而不是從頭開始設計?

我擔心這種做法是不好的設計技術。這樣做可以嗎?如果有的話,創建這麼多的包裝類會出現什麼未解決的問題?

+1

「可能出現什麼未解決的問題」確實不是很多。只要你正確地隱藏了你的包裝類沒有意義的不需要的功能,並且你對內存沒有超緊張的話,那麼包裝預先生成的類型就可能沒問題。 – George

+0

擊敗繼承kludge,只是改變名稱的地獄。下跌是一個額外的抽象層(如果抽象正確,可以轉化爲上漲)和在包裝器中注入缺陷的可能性(與從零開始編寫所有東西相比,這應該是很少的bug)。 – user4581301

+0

我只是不太喜歡用手寫出所有容器,字符串,流等等的想法。 –

回答

2

不要在大多數情況下使用包裝完全無害。

通常你的編譯器應該展開所有的函數調用並優化源庫的開銷。

但是,如果使用預編譯的二進制文件,會帶來一些開銷,但這個小問題會出現。

要在你的情況下使用包裝(意思是保持你的風格約定,輕微的功能改變等),這完全可以。

地址:一些「不可預見」的東西可能是額外的編譯時間,裏面的代碼混亂(U需要使用這些包裝一直保持...),還是原來的一些額外的功能或行爲類,你的包裝不支持。

+0

將在幾分鐘內接受。我剛剛投票,不得不等待。 –

相關問題