singletonはこうやる

http://d.hatena.ne.jp/Maaboo/20070310/1173519571


ここの疑問が解決した。2chでblog晒したら解答がきた。以下参考URL


http://weblogs.macromedia.com/akamijo/archives/2005/12/index.cfm
http://subtech.g.hatena.ne.jp/secondlife/20070219/1171877084


まぁこれも教えてもらったサイトなんだけどねwめちゃ感謝です。以下は参考サイトにアクセサメソッドと命名規則を適応した焼き直しコードです。

【Main.as】
package {
	import flash.display.*;

	public class Main extends MovieClip {
		public function Main() {
			var singleton:Singleton = Singleton.instance;
		}
	}
}

【Singleton.as】
package { 
  public class Singleton {
    private static var __instance:Singleton;
 
    public function Singleton(x:PrivateClass) {
    }
 
    public static function get instance():Singleton {
      if(Singleton.__instance == null) {
        Singleton.__instance = new Singleton(new PrivateClass());
      }
      return Singleton.__instance;
    }
  }
}

class PrivateClass {
}

こんな感じになる。面白いと思ったところといえば

    public function Singleton(x:PrivateClass) {
    }

〜中略〜

class PrivateClass {
}

ここが面白かった。PrivateClassクラスはSingletonクラスからしかみることが出来ないので他からは絶対生成できない。うまいことやっとるわ。あとなんか今日学んだことの集大成っぽくなってかなりGOOD!!


明日からはお絵かきツールをつくってみるお。


P.S.
http://weblogs.macromedia.com/akamijo/

とりあえずここの人のBlogが神すぎる。量が多いので全部は見れてないが、なんか困ったことがあればここみれば大体解決しそうな悪寒がするwww


というかドメインみたら今はなきmacromediaなんですけどwwwこの人はなにものじゃ?