Sistem alt sistemlere ayrıştırıldıktan sonra, detaylı tasarım aşaması gerçekleştirilir. Sistemin aldığı sorumluluklar, bu sorumluluğu gerçekleştirecek sınıflara atanır. İyi bir sınıf tasarımı için, yüksek yakınlık (High Cohesion) ve düşük bağımlılık (Loose Coupling) prensipleri takip edilir. Sınıflar, fonksiyonel olarak birbirine yakın metotları içermelidir. Metotlarda yakınlık, sorumluluğu da tek yapmaktadır. (Single Responsibility Principle) Yani, bu sınıfa sadece bir işlem grubu (sorumluluklar) için müracaat ederiz. İçinde, farklı sorumluluklar olmamalıdır. Sınıflarımız, sadece bir tip değişiklikten etkilenmelidir. Bu değişiklikten dolayı, tekrar teste tabi tutulur. Farklı sorumluluklar sebebiyle, farklı değişiklikler yapılması gerekecektir. Asıl sorumluluğu dışında yüklenen diğer sorumluluklar sebebiyle, çok defa test yapılması gerekecektir.
Çözüm olarak, sorumlulukları dağıtır ve sadece ilgili sınıfın değişiklikten etkilenmesini sağlayabiliriz. Sınıflara sorumluluklar dağıtıldığında, sınıflar arası bağımlılıklar gündeme gelir.
2 comments