namespace Northwind.SockShop.WebUI
public static void Main()
Console.WriteLine("Single Responsiblity Principal Exercise");
var bestStudentCalculator = new BestStudentCalculator();
var awardsController = new StudentAwardsController(bestStudentCalculator);
awardsController.Index();
public class StudentAwardsController
private IStudentCalculator _studentCalculator;
public StudentAwardsController(IStudentCalculator calculator)
_studentCalculator = calculator;
_studentCalculator.CalculateStudents();
public interface IStudentCalculator
void CalculateStudents();
public class BestStudentCalculator : IStudentCalculator
public void CalculateStudents()
Console.WriteLine("Calculate best students.");
public class WorstStudentCalculator : IStudentCalculator
public void CalculateStudents()
Console.WriteLine("Calculate worst students.");
public class MostImprovedStudentCalculator : IStudentCalculator
public void CalculateStudents()
Console.WriteLine("Calculate most improved students.");