<分区>
假设有一个像这样的多边形类:
public class Polygon
{
Point[] _vertices;
public class Polygon(Point[] vertices)
{
_vertices = vertices;
}
}
要制作三角形、正方形、六边形,您更愿意:
- 从 Polygon 继承您的 Triangle、Square 等提供 特定的构造函数并以编程方式生成点?
- 添加一个
CreateSquare
静态方法来返回一个随时可用的 Polygon 类?
这个:
public class Square : Polygon
{
public class Polygon(double size)
{
_vertices = new Point[]{ new Point(0,0), new Point(size,0), new Point(size,size), new Point(0,size)};
}
}
或者这个:
public class Polygon
{
Point[] _vertices;
public class Polygon(Point[] vertices)
{
_vertices = vertices;
}
public static Polygon CreateSquare(double size)
{
double verts = new Point[]{ new Point(0,0), new Point(size,0), new Point(size,size), new Point(0,size)};
return new Polygon(verts);
}
}
从 OOP 编程的角度来看,哪种方法更正确?请注意,派生类不会向原始多边形添加任何内容。
另外,对于后一种情况,有没有方便的命名约定?
是否还有其他我不知道的方法?
谢谢。