背景: 我最近在AS3中完成了一個tic-tac-toe遊戲,使用了我多年前在C語言中編寫的一些簡單的基於函數的代碼。 現在我正在努力做到使用面向對象技術和最佳實踐的「正確方式」。 現在,所有東西都被分成整齊的小包裝,它看起來很漂亮,而我旅程的最後一部分就是讓所有的小狗們相互溝通。Actionscript OOP中的Getter/setter類和範圍
我的困境: 我想將保存遊戲狀態的代碼從我的主代碼移到com.okaygraphics.model.GameState中它自己的類中。 問題幾乎所有其他包都獲取並設置這些遊戲狀態屬性。 我想弄清楚封裝這個東西的最簡單方法,同時還允許我的其他類訪問它。
我在哪裏:
package com.okaygraphics.model{
public class GameState {
private var _player1State:uint=0x00000000;
private var _player2State:uint=0x00000000;
private var _activePlayer:int=0;
public function get p1GameState():uint {
return _player1State;
}
public function set p1GameState(value:uint):void {
_player1State = value;
}
public function get p2GameState():uint {
return _player2State;
}
public function set p2gameState(value:uint):void {
_player2State = value;
}
public function get activePlayer():int {
return _activePlayer
}
public function set activePlayer(value:int):void {
_activePlayer = value;
}
}
}
Qestions:
1)我需要一個構造函數?我的意思是,我的程序永遠不會有一個以上的GameState。如果我應該把我的getters/setter作爲實例方法,我該如何讓其他類從它們各自的包中引用SAME實例?
2)我是否需要getter和setter?也許這個班可能只有3個公共財產?如果是的話,我如何達到我的其他課程的適當範圍?
3)我應該使用static關鍵字將所有內容分配給類本身嗎?如果是這樣,我將如何實現和使用這些靜態方法?
4)這是錯誤嗎?我完全只是將自己編入一個角落?
這似乎是一個很常見的任務,但我仍然不完全明白。一個簡短的解釋,一些鏈接,或我需要的技術名稱將不勝感激。
由於提前, - 最大
那個單身的例子很漂亮。正是我所尋找的;謝謝。 – okayGraphics 2012-02-19 22:02:14