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