Çok sayıda neden var, ancak sevdiğim şey, UNIX'in ilk programlarının çoğunun kullandığı yaklaşım: Bir şeyi iyi yapın. Bunu bir şeyle yapmak yeterince zor ve yapmaya çalıştığınız şeyleri zorlaştırmak zorlaşıyor.
Diğer bir sebep de yan etkileri sınırlamak ve kontrol etmektir. Kombinasyon kahve makinemin kapı açıcısını çok sevdim. Ne yazık ki, ziyaretçilerim varken kahve genellikle taşardı. Geçen gün kahve içtikten sonra kapıyı kapatmayı unuttum ve birisi çaldı.
Psikolojik açıdan bakıldığında, bir seferde yalnızca birkaç şeyi takip edebilirsiniz. Genel tahminler yedi artı veya eksi ikidir. Bir sınıf birden fazla şey yaparsa, hepsini bir kerede takip etmeniz gerekir. Bu, ne yaptığınızı izlemek için yeteneğinizi azaltır. Bir sınıf üç şey yaparsa ve bunlardan sadece birini istiyorsan, sınıfla ilgili bir şey yapmadan önce olayları takip etme yeteneğini tüketebilirsin.
Birden çok şey yapmak, kod karmaşıklığını arttırır. En basit kodun ötesinde, artan karmaşıklık böcek olasılığını artırır. Bu açıdan, sınıfların mümkün olduğunca basit olmasını istersiniz.
Bir şey yapan bir sınıfı test etmek çok daha kolaydır. Her test için sınıfın yaptığı veya gerçekleşmeyen ikinci şeyin olduğunu doğrulamak zorunda değilsiniz. Ayrıca bozuk koşulları düzeltmeniz ve bu testlerden biri başarısız olduğunda tekrar test etmeniz gerekmez.