id:pmoky氏のコードを読んでみた。(part5)
たぶんこれが最後の予感。
Serialize/Serializer.cs
- Mement -> Memento?
- FileStream使うのであればtry-finallyをするべき
Runner/Executer/SimpleReflectExecuter.cs
- Reflectionでクラスを呼び出せるのはComponentDLLに定義されてるものだけらしい
これ以上はちょっと事情もあってコードを読む時間が取れなさそう。
肝の部分は大体読めたし一応の仕組みは理解できたつもり。
以下、StoryGeneratorについての個人的な所感
- 物語とロジックを同居させることは一応できるらしい。が、これってそんなに画期的なのかな?(学生の頃友人がHSPで似たようなもの作ってた)
- リフレクションを使うってのはC#ができたからこそなんでない?C++ではこれはどうあがいてもできないし、普通はJavaでゲームは作らない。新規性があることはあるはず。
- コードについてはstaticでのsingletonにこだわりすぎ。Serializerなんてのはインスタンスをほいっと渡せば自前でリフレクション使わなくても、自動シリアライズ/デシリアライズしてくれる。その意味でstatic-instance,static-methodにしたのは間違いだと思う。普通にprivate-constructorを持ったクラスにして、その上にsingletonになるように皮を被せればよいし、そのほうがSerializeも楽になると思う。