>>571をちょっと弄るが
interface RGB
{
       void change(double red,double green,double blue);
       void change(int rgb);
       RGB to(RGB rgb);//引数で取ったオブジェクトが帰る。
}

こういうインターフェース面白いよね。
void change(RGB source)
{
       RGB fillter = source;

       fillter = fillter.To( new NegativePositive() );//ネガポジ
       fillter = fillter.To( new Edge(0.9) );//強調
       fillter = fillter.To( new Sepia() );//セピア
       fillter.To( this.color ); //最終結果をメンバーへ
}
フィルター化して幾らでも機能を拡張できる。
アクセサ中心でこういうの書こうとするとホント汚くなる。