Я пишу библиотеку со структурами разного уровня точности, такими как точка с целочисленными координатами и точка с координатами с плавающей точкой..NET использует Point
для своей интегральной структуры и PointF
для варианта с плавающей запятой, но недавно я наткнулся на эквивалент Java, который использует Point
и вложенный Point.Double
.
Мне нравитсяИдея определения типов выглядит следующим образом:
struct Point {
// integral implementation
public struct Double {
// double floating-point implementation
}
public struct Long {
// 64-bit implementation
}
// etc..
}
Что мне не нравится, так это переопределение «Double» и «Long» внутри родительского типа.Кто-нибудь использовал этот шаблон и нашел еще какие-либо проблемы, которые возникают из-за этого?Или я должен придерживаться Point
, PointD
, & PointL
?