Bayangkan situasi di mana kami menggunakan pustaka yang memungkinkan Anda membuat Circle
objek, di mana Anda dapat menentukan radius dan pusat lingkaran untuk mendefinisikannya. Namun, untuk beberapa alasan, dibutuhkan juga flavour
parameter yang diperlukan . Sekarang katakanlah saya benar-benar perlu menggunakannya Circle
di aplikasi saya sendiri, tetapi untuk keperluan aplikasi saya, saya dapat mengatur rasanya Flavours.Cardboard
setiap saat.
Untuk "memecahkan" ini, saya membuat Circle
kelas saya sendiri di namespace yang berbeda, yang hanya mengambil radius
dan center
sebagai parameter, tetapi memiliki konverter implisit ke kelas perpustakaan eksternal Circle
yang baru saja membuat Circle(this.radius, this.center, Flavours.Cardboard)
objek. Jadi di mana pun saya membutuhkan jenis lain Circle
, saya membiarkan konversi otomatis terjadi.
Apa konsekuensi dari menciptakan kelas seperti itu? Apakah ada solusi yang lebih baik? Apakah ada bedanya jika aplikasi saya adalah API yang dibangun di atas perpustakaan eksternal ini, yang dimaksudkan untuk digunakan oleh programmer lain?
MakeCircle
fungsi ?
makePlayer
itu sendiri hanya menerima koordinasi untuk menempatkan pemain, tetapi mendelegasikan ke konstruktor yang jauh lebih kompleks.