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