schwarzの雑記 このページをアンテナに追加 RSSフィード

06/05/27 (Sat)5月27日の雑記

[] 23:51 5月27日の雑記 - schwarzの雑記 を含むブックマーク

実際Gloryに入れていくと、どんどん泥沼にはまっていくようです・・・・

なんだか砂のお城が崩れた感じで、途方もない量のバグが発生。

やっぱりグローバル0は厳しい。でも無くしてみたい。


なかなか良い方法が思いつきませんが、とりあえず1つ。

次のような、グローバルにしたい変数をまとめたモジュールを定義します。

module Variables
  @@foo = ""
end

これをincludeしたクラスではすべて、@@fooが共有できます。

class A
  include Variables
  def initialize
    @@foo = "HAHAHAHAHA"
    b = B.new
  end
end

class B
  include Variables
  def initialize
    p @@foo        #=> "HAHAHAHAHA"
  end
end

a = A.new

グローバル変数だと自制が効かずついついガンガン使ってしまうので、それを少しは防ぐ効果はあるかもしれません。

けど、ちょっとイマイチかな。


[] 15:59 5月27日の雑記 - schwarzの雑記 を含むブックマーク

シーンクラスの引数を指定できるように拡張。例えば、

  return "Scene_Map", 1, 3, 5

という風に記述すると、シーンがScene_Mapに移り、そしてScene_Mapクラスのsetupメソッドの引数に1, 3, 5が渡されます。



で、かなり気が重いのですがGloryにこのシーン機構を組み込み始めました。

なんだか、ほとんど一から作り直してる感じがします。

また足りない機能があれば拡張するかと思いますが、今の調子だとグローバル変数を一個も使わずに組めるかもしれません。

mr-80bmr-80b2006/05/28 17:30グローバル変数との付き合いかたは、難しいです…

yf30yf302006/05/29 09:33オブジェクト指向設計的には、デザインパターンにシングルトンってのがあるよ。@@hoehoeを使わなくてもいい。
本物のRubyには、シングルトンパターンモジュールがあるんだけどねぇ~

SchwarzSchwarz2006/05/29 13:07いろいろその辺も勉強してみているのですが、まだよく理解できておりません・・
しかし今のところ$も@@も使っていませんし、この調子で@だけでいけそうな気がします。