澄清单一职责原则

Clarification of single responsibility principle

我对 C# 中的单一职责原则有一个澄清。

假设我有一个方法,在 catch 块中,如果我在数据库中记录错误,是否违反了 SRP,因为该方法同时做两件事?

public void Single()
{
    try
    {
        //
    }
    catch(Exception e)
    {
        // log into db
    }
}

让我们假设您有一个名为 "HandleError" 的方法,它接收到一个错误并创建一个日志文件(如果它不存在)。创建后,它会在此日志文件中存储一些有关错误的必要信息。

对我来说,如果你在单独class中创建这个方法,负责处理错误日志并从你的catch中调用它,你就不会违反建议零售价。

但是如果您在同一个 class 中创建此方法,您可能会违反模式 因为您的 class 将有不止一个更改的理由。