オブジェクト指向は戦場では必要無し その2
■ このスレッドは過去ログ倉庫に格納されています
0399召還師@307
NGNG演算メソッド。
Point add(Point anotherPoint);
Point subtract(Point anotherPoint);
Point dotProduct(Point anotherPoint);
Point crossProduct(Point anotherPoint);
こんなところかな。
こうしておけば、>>350みたいにわざわざ座標を取り出して
外部で+1して、また戻すことをしなくてすむ。
aPoint.add(Point.XY(1, 0));
でいいもん。
これに違和感があるなら、平衡移動を表わす translate を付け加えても良い。
aPoint.translate(1, 0);
状態変化がおこるなら、なるべくPointクラス内部でおこしたほうが良い。
(ちなみに、僕的には、x, yに直接setするセッターは要らないと考えます。
直接setする値が分かってるなら、新しくオブジェクトを生成すべき。)
それでも、Windowの座標(おそらく、Windowの左上と右下の座標)を表わすのに、
こんなPointクラスは要らないって?
僕は、結構有用だと思うよ。
2点間距離を求めるのは、aPoint.subtract(anotherPoint).getR();でいいしね。
極座標は要らない?あった方が便利だよ。
例えば、Windowsのタスクバーで右クリックの重ねて表示をやってみて。
Windowが-45°で重なって表示されたでしょ?
これが、顧客の要望で距離30角度-30°で重ねて表示にしてと言われたときに、
defPoint = Point.RT(30, -30) のPointオブジェクトを用意しとけば、
1つ目のWindowの左上座標 aPoint から考えて、
aPoint.add(defPoint) が2つ目のWindowの左上座標って求まるでしょ?
これを外部で計算すると、sinやcosが見えてなんかスマートじゃなくなるのよね。
■ このスレッドは過去ログ倉庫に格納されています