C#1.1です。
認証画像をジェネレートするサンプルです。
やっとOOPが少しわかり始めた頃に作りました。これは去年の夏くらいだったと思います。
Decoratorパターンに近い設計です。(これを書いた頃はデザパタ勉強中だったけど、Decoratorはまだ知らなかった)
これについては理由あってソース全ては公開できません^^;
一部のソースはここ。
UML(書き方はあまりわからないけど、設計時に書いてみたw)
- エフェクトを追加したいときはIEffectorを実装したクラスを追加すればいい
- データソースを変えたければIStringSourceを実装したクラスと挿げ替えてやればいい(ポリモーフィズム)
- 正解を導きだす方法を変えたければIAnswerを実装したクラスと挿げ替えてあげればいい
- という点ではStrategyチック(?)
インターフェース名を見れば大体どんな作りかわかるかも。
- IGraphicGenerator
- ICanvas Canvas { get; }
- IStringSource Source { get; }
- IEffector[] Effectors { get; }
- ICanvas Generate();
- IEffector
- ICanvas Effect(ICanvas c);
- ICanvas
- Brush[] BrushArray { get; }
- Rectangle PaintAngle { get; }
- Graphics Canvas { get; }
- Image Image { get; }
- Size Size { get; }
- Image Draw(string s);
- IStringSource
- int Length { get; }
- string[] Values { get; }
- string this[int Index] { get; }
- void Make();
- string String { get; }
- IAnswer Answer { get; }
- IAnswer
- string[] Sourceis { get; }
- string CorrectAnswer { get; }
- string Make(params string[] Sourceis);
- bool IsMatch(string Answer);
一部のソースはここ。
0 件のコメント:
コメントを投稿