Pertimbangkan contoh ini:
Saya punya situs web. Itu memungkinkan pengguna untuk membuat posting (bisa apa saja) dan menambahkan tag yang menggambarkan posting. Dalam kode, saya memiliki dua kelas yang mewakili pos dan tag. Mari kita panggil kelas-kelas ini Post
dan Tag
.
Post
mengurus pembuatan posting, menghapus posting, memperbarui posting, dll.
Tag
mengurus pembuatan tag, menghapus tag, memperbarui tag, dll.
Ada satu operasi yang hilang. Menautkan tag ke posting. Saya berjuang dengan siapa yang harus melakukan operasi ini. Itu bisa cocok dengan baik di kedua kelas.
Di satu sisi, Post
kelas bisa memiliki fungsi yang mengambil Tag
parameter, dan kemudian menyimpannya dalam daftar tag. Di sisi lain, Tag
kelas bisa memiliki fungsi yang mengambil Post
sebagai parameter dan menautkan Tag
ke Post
.
Di atas hanyalah contoh dari masalah saya. Saya benar-benar mengalami ini dengan beberapa kelas yang semuanya mirip. Ini bisa cocok dengan baik di keduanya. Singkat untuk tidak menempatkan fungsionalitas di kedua kelas, konvensi atau gaya desain apa yang ada untuk membantu saya memecahkan masalah ini. Saya berasumsi harus ada sesuatu yang kurang dari hanya memilih satu?
Mungkin meletakkannya di kedua kelas adalah jawaban yang benar?