Code:
package com.dimjas.gallery {
/**
* stores all properties and values
*/
public class GalleryStyleManager {
// CONSTANTS
public static const DEFAULT_BACKGROUND_INNER_COLOR:uint=0xCCCCCC;
public static const DEFAULT_BACKGROUND_OUTER_COLOR:uint=0x000000;
public static const DEFAULT_IMAGE_BACKGROUND_COLOR:uint=0x000000;
public static const DEFAULT_THUMB_OVER_COLOR:uint=0xFFFFFF;
public static const DEFAULT_NUMBER_OF_ITEMS:uint=10;
public static const DEFAULT_THUMB_WIDTH:uint=100;
public static const DEFAULT_THUMB_HEIGHT:uint=100;
public static const DEFAULT_CIRCLE_RADIUS:uint=300;
public static const DEFAULT_CAMERA_RADIUS:uint=180;
// VARIABLES
private static var _instance:GalleryStyleManager
private var _properties:Object;
public static function getInstance() :GalleryStyleManager {
if(_instance==null) {
_instance=new GalleryStyleManager();
}
return _instance;
}
public function GalleryStyleManager() {
if(_instance!=null) {
throw new Error("GalleryStyleManager class already instantiated");
}
else {
_properties=new Object();
}
}
/*----------------- PUBLIC FUNCTIONS --------------------*/
/**
* @param key Name for property
* @param value Value for that property
*/
public function setProperty(key:String, value:Object):void
{
_properties[key]=value;
}
/**
* @param key Name for property
* @returns Value for that property
*/
public function getProperty(key:String):Object
{
return _properties[key];
}
}
}
Ovo je primer za jedan Singleton u kom "cuvam" sve podatke za jednu galeriju na primer. Obicno napravim jedan xml sa parametrima koje hocu da menjam, onda ih ovaj Singleton koristi. Ukoliko nisam nesto navela u xml-u, onda koristim te DEFAULT konstante iz njega.
Instanca se poziva sa: GalleryStyleManager.getInstance(); Primer:
Code:
GalleryStyleManager.getInstance().setProperty("thumbWidth", 200);
Ta static funkcija getInstance() obezbedjuje da se uvek koristi samo jedna instanca i nadam se da je sada sve jasno.
[Ovu poruku je menjao dimjas dana 16.05.2009. u 16:23 GMT+1]