-OOP限定-プログラム設計相談室
■ このスレッドは過去ログ倉庫に格納されています
0637デフォルトの名無しさん
2011/07/05(火) 21:06:42.08レッテル貼りはいいから、>>606で
interface RGB{ void change(double r,double g,double b); }
interface RGBConvertor{ RGB to(RGB color); }
って定義されてるRGBConvertor(笑)が何をできるか考えてみろ
結局colorは呼び出し元に情報をもたらさないから、colorに依存しない値でchangeを呼び出すことしかできないだろ?
つまりRGBConvertorは手持ちのRGB情報を押し付けることしかできないインターフェイスだ
当然ネガポジだのセピアだのと言った変換も出来ない(出来るとしてもRGB側に実処理を書く必要がある)
このゴミ設計をどうしても使うとしたら、RGBConvertorをRGB値として使い、
RGB値を必要とするクラスでRGBを実装してロジック内で呼び出し、フィールドなりなんなりを書き換えて処理を行う必要がある
でもそれはスレッドアンセーフだから、結局別のRGBインスタンスにRGBのゲッターを公開してもらって使わないといけない
■ このスレッドは過去ログ倉庫に格納されています