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 件のコメント:
コメントを投稿