Circle
Nesneleri 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 flavour
parametreyi de alır . Şimdi Circle
kendi uygulamamda gerçekten kullanmam gerektiğini söyleyelim , ancak uygulamamın amaçları için Flavours.Cardboard
her seferinde lezzeti ayarlayabilirim .
Bunu "çözmek" için Circle
, sadece radius
ve alır center
parametre olarak farklı bir ad alanında kendi sınıf oluşturmak , ama Circle
sadece 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 ?
makePlayer
kendi çizgisinde bir işlev yaratacağım, sadece oyuncuyu yerleştirmek için koordinatları kabul eder, ancak çok daha karmaşık bir kurucuya delege olur.