Вы можете создать вспомогательный класс, который может преобразовывать один в другой, поэтому вы можете просто использовать простые классы, такие как Vector3
или какой-то еще, для хранения ваших данных.
Поскольку RGB, HSV и все это всего лишь 3 значения, для всех данных можно использовать Vector3
. Но затем программист не должен вводить неправильные значения в неправильные методы.
Для обеспечения правильного типа значения. Мы могли бы использовать Vector3
в качестве базового класса, а затем позволить каждому типу (например, RGB) наследоваться от базового класса.
Вы даже можете создать «межкласс», который называется Color
. Который является абстрактным классом. Класс RGB
может затем реализовать все абстрактно определенные методы.
Итак, вы получите:
Vector3
(большинство языков имеют такой класс)
abstract Color extends Vector3
(имеет абстрактные методы)
RGB extends Color
(реализует все методы для преобразования в другие классы).
Абстрактные методы в Color, которые конвертируют, просто возвращают сам Color. Таким образом, вы можете переопределить метод следующим образом.