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