Daha önce Komut-Sorgu-Ayırma (CQS) duymadım, ancak bir işlevin / sınıfın ideal olarak sadece bir şey ve bir şey yapmaktan sorumlu olması gerektiğini belirten Tek Sorumluluk İlkesi (SRP) ile ilgili olacağı anlaşılıyor. .
Komut kodunuz 20 satır kod ve sorgu kodu başka bir 30 satır ise ve hepsi bir işlev gövdesindeyse, SRP'yi ihlal ediyorsunuz ve CQS'yi de varsayıyorum ve bu iki mantık birbirinden ayrılmalıdır. .
Ancak, varsayımsal örneğinizle giderken, büyük olasılıkla DRY'nin kodun çeşitli yerlerinde ihlal edilmemesi için komutunuzu ve sorgunuzu birleştirecek bir sarmalayıcı yöntemi oluşturacağım. Ben de sarıcı hala tek bir sorumluluğu var: SRP (ve belki CQS) ihlali olarak düşünmek olmaz: komut bir sorgu ile birleştirmek ve tüketmek daha kolay bir üst düzey soyutlama oluşturmak.
Sarma yönteminin mükemmel kabul edilebilir bir çözüm olduğunu düşünüyorum ve bunu göstermek için örneğinizi bir adım daha ileri götürelim. 1 yerine 2 sorgu çalıştırıp ardından buna dayalı bir komut eylemi yapmanız gerekiyorsa ne yapmalısınız? Yani 2 kod satırınız 6 veya 8 olur. Ya biri ile diğeri arasında veri doğrulama / kontrol olsaydı, şimdi 15 kod satırınız var. Bu 15 satırı birden fazla dosyaya serpmek yerine, tüm bunları yapan bir sarıcı oluşturma hakkında iki kez düşünür müsünüz?