Misalkan saya sedang mengerjakan sistem yang sudah ada dan cukup besar. Saya punya objek, myObject
kelas MyClass
(demi contoh, misalkan saya bekerja di Jawa). myObject
adalah komposisi yang mengandung Collection
, katakanlah, List
dan benda lain yang (saya pikir) tidak relevan. Ini berisi metode delegasi yang hanya berfungsi untuk memanggil metode List
itu terdiri dari, untuk memastikan List
itu tidak terbuka (maaf jika saya salah terminologi saya).
Katakanlah ini List
adalah 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 SomeOtherClass
dipanggil someObject
. Saya akan menelepon myObject.insert(someObject)
dan di dalam insert
metode akan ada beberapa sihir yang akan mengambil String
untuk dimasukkan ke dalam List<String>
.
Misalkan sekarang saya hanya punya String
nilai, dan tidak ada SomeOtherClass
objek untuk dimasukkan. Dengan asumsi saya tidak dapat memodifikasi insert
metode ini karena akan merusak semua yang ada di sistem ini. Lalu haruskah saya membebani insert
metode ini? Atau haruskah saya membuat objek baru SomeOtherClass
setiap 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 String
representasi SomeOtherObject
yang merupakan objek domain.