博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

程序中状态的管理

Posted on 2011-12-08 14:35  张启龙_1988  阅读(85)  评论(0)    收藏  举报

在平时写程序中,经常会出现状态管理,比如是否是战斗状态,是否是白天还是黑夜,比如是否是家里还是外面,一般都是用很多变量来控制。

这样会带来很多的杂乱的多余的变量,不方便管理。 

View Code
 1 package core.manager.state
2 {
3 public class GameStateManager
4 {
5 private static var _home:Boolean;
6
7 public static function set homeState(value:Boolean):void
8 {
9 _home = value;
10 //do something.....
11 }
12
13 public static function get homeState():Boolean
14 {
15 return _home;
16 }
17 //这些做一样的处理
18 private static var _day:Boolean;
19
20 private static var _war:Boolean;
21 }
22 }

 

其实很多时候 可以用二进制来解决这个问题,先把各个状态列举出来

public static const HOME:uint = 1 << 0;

public static const WAR:uint = 1 << 1;

public static const DAY:uint = 1 << 2;


然后我们就可以只用1个变量来控制状态了 哇咔咔

private static var _gameState:uint;

 

如果要设置状态可以这样

public static function setHomeMode():void
{
_gameState |= HOME;
}

public static function setVisitMode():void
{
_gameState &= (~HOME);
}

 

如果要获取状态 可以这样

public static function isHomeMode():Boolean
{
return (_gameState & HOME);
}

这样就可以添加足够多的状态  呵呵   32种还不够你用么?

 

1年多没更新了  心血来潮写下  各位看客看过的请留个言 激励我继续写啊