Misalkan saya sedang mengerjakan sistem yang sudah ada dan cukup besar. Saya punya objek, myObjectkelas MyClass(demi contoh, misalkan saya bekerja di Jawa). myObjectadalah komposisi yang mengandung Collection, katakanlah, Listdan benda lain yang (saya pikir) tidak relevan. Ini berisi metode delegasi yang hanya berfungsi untuk memanggil metode Listitu terdiri dari, untuk memastikan Listitu tidak terbuka (maaf jika saya salah terminologi saya).
Katakanlah ini Listadalah List<String>tetapi, untuk beberapa alasan, metode akses utama adalah metode topeng untuk kelas SomeOtherClass. Jika saya ingin memasukkan pasangan nilai baru ke saya List, maka saya akan memiliki objek yang SomeOtherClassdipanggil someObject. Saya akan menelepon myObject.insert(someObject)dan di dalam insertmetode akan ada beberapa sihir yang akan mengambil Stringuntuk dimasukkan ke dalam List<String>.
Misalkan sekarang saya hanya punya Stringnilai, dan tidak ada SomeOtherClassobjek untuk dimasukkan. Dengan asumsi saya tidak dapat memodifikasi insertmetode ini karena akan merusak semua yang ada di sistem ini. Lalu haruskah saya membebani insertmetode ini? Atau haruskah saya membuat objek baru SomeOtherClasssetiap kali saya ingin menelepon insert?
Saya kira jika saya membebani secara berlebihan, itu akan terlihat seperti ini ...
public void insert(String s) {
...
}
public void insert(SomeOtherObject obj) {
this.insert(obj.magicStringMethod());
}
(Contoh ini adalah teka-teki yang dibuat berdasarkan situasi yang serupa (sedikit lebih kompleks) mengenai kelebihan muatan yang saya temui kemarin. Saya akan memperluasnya jika ada sesuatu yang tidak jelas)
Apakah ini tempat yang tepat untuk membebani suatu metode? Jika tidak, kapan saya harus membebani metode?
magicStringMethod()dalam contoh saya akan, dalam kasus saya, mendapatkan Stringrepresentasi SomeOtherObjectyang merupakan objek domain.