2009/04/19

[C#]GraphicGenerator(認証画像ジェネレータ)

WS0654
WS0662
WS0663
WS0655
WS0657
WS0658
WS0659
WS0660
WS0661

C#1.1です。
認証画像をジェネレートするサンプルです。
やっとOOPが少しわかり始めた頃に作りました。これは去年の夏くらいだったと思います。

Decoratorパターンに近い設計です。(これを書いた頃はデザパタ勉強中だったけど、Decoratorはまだ知らなかった)
これについては理由あってソース全ては公開できません^^;
一部のソースはここ

UML(書き方はあまりわからないけど、設計時に書いてみたw)
GraphicGenerator

  • エフェクトを追加したいときは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);

一部のソースはここ



絶対現場主義Visual C#実践講座―開発の現場から生まれた実践テクニック&TIPS集C#クックブック 第3版増補改訂版Java言語で学ぶデザインパターン入門

0 件のコメント:

コメントを投稿