The ‘S’ in SOLID design principles is for the Single Responsibility Principle. It is also the easiest one, in my opinion. The gist of it is that every part of the system should have only a single responsibility, including the system itself.

Take the below code

public class User
{
	public void ActivateUser()
	{
		// Logic goes here
	}

	public void DeleteUser()
	{
		// Logic goes here
	}

	public void MailUser()
	{
		// Logic goes here
	}
}

On the surface, this looks fine, but those methods’ logic is neither reusable nor easily refactored.

To fix it is simple

public class UserActivation
{
	public void ActivateUser(User user)
	{
		// Logic goes here
	}
}

public class UserDeletion
{
	public void DeleteUser(User user)
	{
		// Logic goes here
	}
}

public class Mailer
{
	public void MailUser(User user)
	{
		// Logic goes here
	}
}

public class User
{
	public void ActivateUser()
	{
		UserActivation.ActivateUser(this);
	}

	public void DeleteUser()
	{
		UserDeletion.DeleteUser(this);
	}

	public void MailUser()
	{
		Mailer.MailUser(this);
	}
}

This way the code is reusable (it can be called from anywhere in your code) and the logic only needs to be refactored in one place.