: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几点
早餐粥车加盟 加盟早点车 早点连锁加盟 早餐培训加盟 早点小吃加盟网
早餐工程加盟 雄州早餐怎么加盟 早餐加盟费用 娘家早餐加盟 上海早点加盟
小吃早点加盟 早餐工程加盟 早餐免费加盟 早餐 早餐面馆加盟
河北早餐加盟 早点加盟店有哪些l 加盟特色早点 北方早餐加盟 卖早点加盟
华东15选5走势图 pk10双面新凤凰 西南彩票云南快乐十分 辽宁十一选五开奖结果查询结果 双色球历史开奖1000期
云南时时彩游戏规则 pk10赛车6码345678公式 天津十一选五走势图12114安卓系 大乐透开奖结果 pk10走势彩票控
赛车pk10六码技巧规律 湖北十一选五体彩 ps历史记录 分分彩历史记录 幸运飞艇几点开始
福建36选7开奖结果 体育彩票大乐透开奖结果 海南飞鱼走势图 陕西快乐十分 星际娱乐圈txt百度云