Creating Singleton class in AS 3.0
How to create a singleton class? Here is an example.
Let’s say we have a normal class like “Cricketer”.
package components
{
public class Car{
private var _carName:String;
private var _carColor:String;
private var _carPrize:int;
/**
* CONSTRUCTOR
*/
public function Car(){}
/**
* GETTERS AND SETTERS
*/
public function get carName():String{return _carName;}
public function set carName(value:String):void{_carName = value;}
public function get carColor():String{return _carColor;}
public function set carColor(value:String):void{_carColor = value;}
public function get carPrize():int{return _carPrize;}
public function set carPrize(value:int):void{_carPrize = value;}
}
}
Now to make this class singleton, add following piece of code.
package components
{
public class Car{
private var _carName:String;
private var _carColor:String;
private var _carPrize:int;
protected static var _instance:Car;
//Making singlton
public static function getInstance():Car
{
if (_instance == null)
{
_instance = new Car();
}
return _instance;
}
/**
* CONSTRUCTOR
*/
public function Car(){}
/**
* GETTERS AND SETTERS
*/
public function get carName():String{return _carName;}
public function set carName(value:String):void{_carName = value;}
public function get carColor():String{return _lastName;}
public function set carColor(value:String):void{_lastName = value;}
public function get carPrize():int{return _carPrize;}
public function set carPrize(value:int):void{_carPrize = value;}
}
}
Let’s see how we can utilize this feature in our application.
protected function checkSinglton(event:FlexEvent):void
{
// TODO Auto-generated method stub
//A First Cricketer
var car:Car = Car.getInstance();
car.carName= "Tata Indigo Marina";
car.carColor = "0xEBEBEB";
car.carPrize = 570000;
trace ("My First Car: "+car.carName + "having color of " + car.carColor + " which cost me around " + car.carPrize.toString());
//A new cricketer ? or not ?
var secondCricketer:Cricketer = Cricketer.getInstance();
trace ("Second Cricketer : "+cricketer.firstName + " " +cricketer.lastName " " +cricketer.type);
}
Advertisement
Categories: Action Script 3.0
class, Singleton