Bu örneği düşünün:
Bir web sitem var. Kullanıcıların yayın yapmasına (herhangi bir şey olabilir) ve yayını tanımlayan etiketler eklemesine olanak tanır. Kodda, yazı ve etiketleri temsil eden iki sınıf var. Bu sınıflara Post
ve diyelim Tag
.
Post
yayın oluşturma, yayınları silme, yayınları güncelleme, vb. ile
Tag
ilgilenir. etiket oluşturma, etiketleri silme, etiketleri güncelleme vb.
Eksik bir işlem var. Etiketlerin gönderilere bağlanması. Bu operasyonu kimin yapması gerektiğiyle mücadele ediyorum. Her iki sınıfa da eşit derecede uygun olabilir.
Bir yandan Post
sınıf Tag
, a parametresini alan ve daha sonra onu bir etiket listesinde saklayan bir işleve sahip olabilir . Öte yandan, Tag
sınıf bir alır bir işlevi olabilir Post
parametre olarak ve bağlantılar Tag
için Post
.
Yukarıdaki sorunumun sadece bir örneğidir. Aslında buna benzer birden çok sınıf ile koşuyorum. Her ikisine de eşit şekilde sığabilir. Aslında her iki sınıfa da işlevsellik katmaktan yoksun, bu sorunu çözmeme yardımcı olacak kurallar veya tasarım stilleri var. Ben sadece bir tane seçmek için kısa bir şey olması gerektiğini varsayıyorum?
Belki de her iki sınıfa koymak doğru cevaptır?