さて、最近、Javaで「ペイントアプリケーション」を作成しました。MS Windows Paintに似た小さなプログラムで、明らかに(私のソースコードを評価した一部の人々によると)私のアプリケーションでクラスを適切に使用していません。残念ながら、何が間違っているのかわかりませんが、何が間違っているのかを教えてくれる人は誰もいません。
継承の概念を使用する「適切な」クラスがあります。
PaintObject
-ClosedObject
--RectangleShape
--OvalShape
-OpenObject
--PointShape
--LineShape
しかし、それでも私はコードで何が間違っているのか、クラスが適切に使用されていないと考えることにつながる可能性があるのかわかりません...
(私の意見では)間違っている可能性があるのは、次のような新しいオブジェクトを作成して描画するという事実だけです。1つのフィールド変数(おそらくタイプ)new RectagleObject(...)
をnew OvalShape(...)
作成する代わりに、メソッドが呼び出されたときに適切な形状を割り当てます(明らかにその特定の形の描画と一緒に)objectToBeDrawn
PaintObject
executeOperation
コードサンプルは次のとおりです。
public void executeOperation(Graphics2D gr, int oper, boolean drawingMode){
if(oper==1){
new RectangleShape(startLocation, endLocation, borderColor, fillColor).draw(gr);
}
else if(oper==2){
new OvalShape(startLocation, endLocation, borderColor, fillColor).draw(gr);
}
....//more operations
}
誰もが一般的なプログラミングの習慣に関して何が間違っている可能性があるかを知っています(私の「推測」が正しい場合を除きますか?-そうである場合は、私の疑問を確認してください)。それとも何か他のものがありますか?oper==1
(そのような値は定数として定義されるべきであることがわかっているので 、の一部をスキップしてください)
私の経験は「限られている」(実際にはない)ので、どんな助けでも大いに感謝します。私は自分で学び、プロのプログラムがどのように設計されているか(そしてそのパターンに従うか)を推測するのは本当に難しいです。