這是一種方法論問題。當您編寫使用面向對象庫來抽象OpenGL等的軟件時,您(或您)是否應該選擇擴展OpenGL輔助對象並將自己的業務邏輯添加到它們上面,或者創建您的基本業務對象,然後將OpenGL助手作爲它們的屬性。編寫3D圖形軟件時的類層次結構
例如
比方說,我有一個OpenGL庫,它提供了一個類
OpenGLBillboard
其中提請面對攝像機
,如果我有某種業務的2D精靈將使用該類呈現的對象,單純地擴展OpenGLBillboard並在其上構建它是明智的,還是我應該擁有一個OpenGLBillboard對象,該對象是一個基本上是基類的屬性我的軟件?
看起來在這種情況下繼承可能是危險的,因爲如果基類因需求而必須改變,重構可能會很痛苦......但是如果我只是走財產路線,我會多一點前期樣板書寫。
您的想法?
謝謝
P.S.原諒我說「商業對象」。我只是不想在一個關於3D的話題中說「模型」,並且讓人們對我的意思感到困惑。