CircleNesneleri oluşturmanıza izin veren bir kitaplık kullandığımız, onu tanımlamak için dairenin yarıçapını ve merkezini belirtebileceğiniz bir durum düşünün . Ancak, bazı nedenlerden dolayı, gerekli bir flavourparametreyi de alır . Şimdi Circlekendi uygulamamda gerçekten kullanmam gerektiğini söyleyelim , ancak uygulamamın amaçları için Flavours.Cardboardher seferinde lezzeti ayarlayabilirim .
Bunu "çözmek" için Circle, sadece radiusve alır centerparametre olarak farklı bir ad alanında kendi sınıf oluşturmak , ama Circlesadece bir Circle(this.radius, this.center, Flavours.Cardboard)nesne oluşturan harici kütüphanenin sınıfına örtük bir dönüştürücü vardır . Yani diğer türlere ihtiyacım olan her yerde Circle, otomatik dönüşümün gerçekleşmesine izin verdim.
Böyle bir sınıf yaratmanın sonuçları nelerdir? Daha iyi çözümler var mı? Uygulamamın bu harici kütüphanenin üzerine kurulmuş ve diğer programcılar tarafından kullanılmak üzere tasarlanmış bir API olması fark eder mi?
MakeCircle işlev yaratmıyorsunuz ?
makePlayerkendi çizgisinde bir işlev yaratacağım, sadece oyuncuyu yerleştirmek için koordinatları kabul eder, ancak çok daha karmaşık bir kurucuya delege olur.