- 1
- 0
- 约3.25千字
- 约 6页
- 2017-06-12 发布于北京
- 举报
Flash AS3单例模式通用类写法-Flash
单例模式的优点:
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.只有一个实例,用内部类实现只能实例化一次,外
原创力文档

文档评论(0)