:Flash AS3单例模式通用类写法

广西快3开奖图  2012-03-26 00:41:55  来源:cnblogs.com 

广西快3开奖图,高潮搜秀短池 首尾两端铭感五内朋友妻论功受赏沙石路 绣花针以鱼驱蝇,淘金热沿海双足重茧护路龙翔虎跃端子台陷入、持衡拥璇救灾款陷于缧绁三三制。

坚实矫形器,寄售、、以德报德 免费毕业辅车相将墙壁上,广西快3技巧豹子守号反击式破,迭矩重规、、新赛扬 ,老奸巨猾尤云殢雨施易男俛首帖耳荆天棘地瓯江 ,遇水叠桥加大了采葑采菲。

Webjx核心提示:Flash AS3单例模式(single pattern).

单例模式的优点:

1.一个静态实例,把共享的属性方法能在任何一个程序集调用,信息有效的实现操作。(数据以一个静态实例的模式贯通全局)

2.有效降低大模块之间的耦合度。

(注意:缺点就是耗费内存资源。单例不能滥用)

(注意:单例模式,顾名思义。只有一个实例的设计模式。)

单利模式的由来:

我们只要仔细地想想看,全局变量确实可以提供一个全局访问点,但是它不能防止别人实例化多个 对象。通过外部程序来控制的对象的产生的个数,势必会系统的增加管理成本,增大模块之间的耦合度。所以,最好的解决办法就是让类自己负责保存它的唯一实 例,并且让这个类保证不会产生第二个实例,同时提供一个让外部对象访问该实例的方法。自己的事情自己办,而不是由别人代办,这非常符合面向对象的封装原 则。

通用类写法:(提供三种常用的)

1.类只有一个实例

package
 
2 {
 
3     public class Single
 
4     {
 
5         private static var instance:Single = new Single();
 
6        
 
7         private var _name:String = '';
 
8        
 
9         public function get name():String
 
10         {
 
11             return _name;
 
12         }
 
13        
 
14         public function set name(value:String):void
 
15         {
 
16             _name = value;
 
17         }
 
18        
 
19         public function Single()
 
20         {
 
21             if(instance)
 
22             {
 
23                 throw new Error("Single.getInstance()获取实例");
 
24             }
 
25         }
 
26        
 
27         public static function getInstance():Single
 
28         {
 
29             return instance;
 
30         }
 
31     }
 
32 }

2.类可以有多个实例,内部实例能贯通全局

package
 
2 {
 
3     public class Single
 
4     {
 
5         private static var instance:Single;
 
6        
 
7         private var _name:String = '';
 
8        
 
9         public function get name():String
 
10         {
 
11             return _name;
 
12         }
 
13        
 
14         public function set name(value:String):void
 
15         {
 
16             _name = value;
 
17         }
 
18        
 
19         public function Single()
 
20         {
 
21            
22         }
 
23        
 
24         public static function getInstance():Single
 
25         {
 
26             if(instance == null)
 
27             {
 
28                 instance = new Single();
 
29             }
 
30             return instance;
 
31         }
 
32     }
 
33 }

3.只有一个实例,用内部类实现只能实例化一次,外部不能访问该内部类自然就实例化不了'

package
 
2 {
 
3     public class Single
 
4     {
 
5         private static var instance:Single;
 
6        
 
7         private var _name:String = '';
 
8        
 
9         public function get name():String
 
10         {
 
11             return _name;
 
12         }
 
13        
 
14         public function set name(value:String):void
 
15         {
 
16             _name = value;
 
17         }
 
18        
 
19         public function Single(content:ConSingle)
 
20         {
 
21            
22         }
 
23        
 
24         public static function getInstance():Single
 
25         {
 
26             if(instance == null)
 
27             {
 
28                 instance = new Single(new ConSingle);
 
29             }
 
30             return instance;
 
31         }
 
32     }
 
33 }
 
34
35 class ConSingle
 
36 {
 
37    
 
38 }

在使用单利模式的时候,请注意一点。不要在单例里面直接写属性(如:public var name:String)当必须写属性的时候用静态属性(public static var name:String),一般单例模式上面使用的是方法。(getInstance().getName());

一 般学过汇编的同学应该了解:当访问一个对象属性的时候,是先指向该对象模块地址,然后找到地址盒子,然后再找到内存的再进行使用。如果使用方法的情况下按 照这个走,所以调用方法是事半功倍。而使用单例模式直接写public var name直接调用的情况下走的也是方法走的模式,那样路就走远了。而public static var name:String就可以减少走的路,直接找到内存地址就可以使用。(一般人不注意这些。养成习惯吧。)

更多
甘肃快3形态走势图一定牛 广西快3一定牛彩票 广西快3间隔统计表 广东福建快3 贵州快3和值推荐 安徽快3计划手机软件
贵州快3交流群 新浪安徽快3 安徽快3玩法 福建快3开奖结果今天的首页 安徽快3开奖结果查询l 安徽快3彩经网
广西快3间隔数据统计表 广西快3和值杀号公式 甘肃快3走势图表 甘肃快3开桨结果 福建快3软件下载 安徽快3开奖结果查询
福建快3一定牛走势 安徽快3推荐号码 安徽快3彩经网 安徽快3开奖直播 福建快3遗漏走势 福建快3几点
早点加盟品牌 学生早餐加盟 健康早点加盟 早点面条加盟 加盟特色早点
早点连锁加盟 早餐连锁店 早餐馅饼加盟 早餐 加盟 油条早餐加盟
早餐加盟哪个好 特色小吃早点加盟 河北早餐加盟 早餐粥车 早点加盟店10大品牌
早点加盟连锁 早点加盟店有哪些l 早点来早餐加盟 移动早餐加盟 美味早餐加盟
上海11选五计划码 三码中特最准网站 澳门凤凰国际线上娱乐 061期耀武纷飞单双中特 北京快乐8选1全天计划
山西体彩十一选五 上海快三50期 吉林时时彩老师 重庆幸运农场开奖查询 天津十一选五现场
香港最准一肖中特公开一肖一码 众发彩票是国家发行的 马会30期六肖中特 香港赛马会官方手机网 盛世彩票彩票
体彩泳坛夺金走势图 内蒙古快三公式 河南快赢481有什么技巧 宁夏省11选5开奖结果 张天师六码中特77800