Я хочу реализовать программу рисования на основе GUI. Он должен уметь рисовать круги, треугольники и квадраты. И это должно быть в состоянии расширить число фигур в системе в будущем.
Программа наделяет эти фигуры определенными «способностями», такими как способность «двигаться», «расширять», «вращать» и, конечно, «рисовать» (чтобы нарисовать фигуру в GUI). Каждый из этих методов нуждается в графическом контексте, передаваемом в качестве параметра, для их отрисовки.
Я хочу использовать шаблон проектирования для этой программы, и так как методы будут отличаться от формы к форме Я думаю, что шаблон стратегии будет полезен.
Я хочу знать, как хорошо я использовал этот шаблон.
interface Shape{}
interface Behavioral{
public void move(Graphics g){}
public void expand(Graphics g){}
public void draw(Graphics g){}
}
(There is an aggregation between shape and behavioral)
interface Rotatable{
public void rotate(Graphics g)
}
interface RotatableToLeft extends Rotatable(){
public void rotate(Graphics g)
}
interface RotatableToRight extends Rotatable(){
public void rotate(Graphics g)
}
class circle implements Shape{
public void move(Shape g){--}
public void expand(Shape g){--}
public void draw(Shape g){--}
}
class Square implements Shape implements Rotatable{
public void move(Shape g){--}
public void expand(Shape g){--}
public void draw(Shape g){--}
public void rotatefree(RotatableToLeft g){--}
}
class Triangle implements Shape implements Rotatable{
public void move(Graphics g){--}
public void expand(Graphics g){--}
public void draw(Graphics g){--}
public void rotateLeft(RotatableToLeft g){--}
public void rotateRight(RotatableToRight g){--}
}