Набор принципов проектирования типов

Single Responsibility Principle

Open/Closed Principle

Liskov Substitution Principle

Interface Segregation Principle

Dependency Inversion Principle

Single Responsibility Principle

Каждый тип должен быть ответственен за выполнение единственной задачи. Он может иметь множество поведений, но они должны быть направлены на решение общей задачи.

Принцип имеет схожесть с High Cohesion из GRASP

Пример нарушения

class Serializer
{
		public string SerializeToJson(object obj)
		{
				// ...
		}

		public string SerializeToXml(object obj)
		{
				// ...
		}

		public void SaveData(string data)
		{
				// ...
		}
}

Тип имеет отвественности: