當創建一個將以圖形方式表示的對象,並且具有獨立於該表示的數據和功能時(即,卡片遊戲中的卡片將具有圖形,但也知道其值,適合,也許可以翻轉),從最佳實踐方法,該對象應該知道自己的形象和位置?
如果不是,應該如何處理?我明白,至少應該有另一個班級負責繪製這個對象,並且它呼籲我說班級不需要關心它的圖形:程序應該能夠改變設計和外觀在不影響課堂本身的情況下 - 無論你如何繪製圖像,七個黑桃都是七個黑桃 - 但是我發現很難想出一個解決方案,讓'抽屜'課知道圖像和位置卡。
我現在的解決方案是有一個精靈類,並且卡包含一個精靈對象,它與卡一起構建 - 精靈只包含一個圖像和矢量(位置),但我覺得我可以打破這個。
我錯過了任何設計模式或常識解決方案?或者我只是錯誤地認爲這應該分開?面向對象的圖形和畫家
0
A
回答
0
由於這是一個意見問題:我認爲最好不要讓對象知道自己的圖像。它應該知道自己的立場。像你提到的那樣,當一張卡被抽出時,七個黑桃是七個黑桃。將它留給不同的處理程序來根據它是什麼類型的卡來繪製圖像,而不是向卡片要求其圖像。
當你畫一張卡時,你可以進行方法調用,例如:drawCardImage(cardObject.type)。然後,該方法可以使用if語句檢查「if card =='sevenofspades':draw(」/ images/sevenspades.png「)
相關問題
- 1. JPanel面向對象的圖形
- 2. 面向對象和非面向對象之間的區別javascript
- 3. 用C++編寫一個簡單的面向對象的圖形
- 4. 不向玩家移動的動畫製作對象 - Unity
- 5. 面向對象的Python - 使用類和函數的矩形
- 6. 圖形數據庫中的面向對象編程
- 7. Python圖形和軸對象
- 8. Java:向圖形對象添加ActionListeners
- 9. 面向對象的圖像ImageList設計
- 10. 面向對象:如何編寫類的家庭一起工作?
- 11. MusicBrainz的藝術家形象和信息
- 12. 面向對象的分析和設計
- 13. 面向對象的C++和C#
- 14. 面向對象的模型和backbone.js
- 15. 面向對象的編程和路徑
- 16. 面向對象的PHP和笨
- 17. 面向對象的PHP和陣列
- 18. 接口和麪向對象的設計
- 19. 面向對象的javascript和IE7問題
- 20. OpenACC和麪向對象的C++
- 21. 圖形動畫()向上/向下滑動
- 22. Facebook粉絲頁面和相關的開放圖形對象
- 23. 面向對象層
- 24. NSNotification面向對象
- 25. Reactjs - 面向對象?
- 26. 面向對象c#
- 27. 面向對象OOJS
- 28. 試圖在d3中使用面向對象的方法生成條形圖
- 29. 使用面向對象的Python對象進行面向對象或精化
- 30. java界面 - 面向對象
我想提出的是,這不是一個OOP問題,而是更多的關注點分離問題 - 在遊戲設置中,這取決於你正在與誰交談(也可能受到你使用的引擎的影響) – 2014-09-12 19:41:45