Уявіть ситуацію, коли ми використовуємо бібліотеку, яка дозволяє створювати Circleоб’єкти, де ви можете вказати радіус та центр кола, щоб визначити його. Однак чомусь він також приймає необхідний flavourпараметр. Тепер скажімо, що мені дійсно потрібно використовувати Circleв своєму власному додатку, але для цілей своєї програми я можу встановлювати аромат Flavours.Cardboardкожного разу.
Для того, щоб «вирішити» це, я створюю свій власний Circleклас в іншому просторі імен, який тільки приймає radiusі в centerякості параметрів, але має неявний перетворювач до зовнішньої бібліотеці Circleкласу , який просто створює Circle(this.radius, this.center, Flavours.Cardboard)об'єкт. Тому всюди, де мені потрібен інший тип Circle, я дозволяю автоматичне перетворення.
Які наслідки створення такого класу? Чи є якісніші рішення? Чи має щось значення, якби моє додаток було API, побудованим поверх цієї зовнішньої бібліотеки, призначеним для використання іншими програмістами?
MakeCircle функцію ?
makePlayerяка сама приймає команди, щоб розмістити гравця, але делегує набагато складнішому конструктору.