這是一個開放的MVC相關問題,我正在尋找批評和建議。GraphViewer類和GraphEditorViewer類之間的關係
簡要版本: ViewA用於查看ModelA。 如果ModelB擴展ModelA並且ViewB用於查看ModelB,那麼ViewB將繼承ViewA?
背景:
我已經創建了一個圖形類,含有頂點數組和邊緣的陣列。 頂點每個都有一個n大小的整型數據數組。
我還爲2d圖形創建了一個GraphViewer類,它只爲頂點繪製邊和點的線。
現在我決定創建一個GraphEditor類,也就是與編輯功能的曲線圖,例如它需要有方法和允許用戶交互字段: 例如: selectVertex - 接受當前鼠標座標的方法和返回最接近該點的頂點,並且 selectedVertices - 選擇的所有頂點的數組
我決定GraphEditor將從Graph繼承。 由於GraphEditor仍然只是具有編輯功能的圖形。
現在我想創建一個GraphEditorViewer,它需要繪製不同顏色的選定頂點(例如),我認爲自從GraphEditor擴展Graph之後,或許GraphEditorViewer應該擴展GraphViewer,但是我發現情況並非如此,新類GraphEditorViewer不'查看'正則圖。 所以我決定在GraphEditorViewer和GraphViewer之間使用'has-a'關係。這意味着我不得不公開許多與GraphViewer相關的渲染方法,所以我可以從新類中調用它們。
我想知道你是否會以不同的方式去做,你對我的選擇有什麼看法。
感謝