Представьте себе ситуацию, когда мы используем библиотеку, которая позволяет вам создавать Circleобъекты, где вы можете указать радиус и центр круга, чтобы определить его. Однако по какой-то причине он также принимает обязательный flavourпараметр. Теперь предположим, что мне действительно нужно использовать Circleв моем собственном приложении, но для целей моего приложения я могу установить вкус Flavours.Cardboardкаждый раз.
Для того, чтобы «решить» это, я создаю свой собственный Circleкласс в другом пространстве имен, который только принимает radiusи в centerкачестве параметров, но имеет неявный преобразователь к внешней библиотеке Circleклассу , который просто создает Circle(this.radius, this.center, Flavours.Cardboard)объект. Поэтому везде, где мне нужен другой тип Circle, я разрешаю автоматическое преобразование.
Каковы последствия создания такого класса? Есть ли лучшие решения? Будет ли иметь какое-то значение, если бы мое приложение было API, построенным поверх этой внешней библиотеки, предназначенной для использования другими программистами?
MakeCircle функцию ?
makePlayerаналогичную той, которая сама принимает только координаты для размещения игрока, но делегирует гораздо более сложный конструктор.