澄清单一责任原则

时间:2018-10-14 03:43:23

标签: c# .net c#-4.0

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

假设我有一个方法,并且在catch块中,如果我将错误记录在数据库中,是否因为该方法一次执行两项操作而违反了SRP?

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

1 个答案:

答案 0 :(得分:3)

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

对我来说,如果您在单独类中创建此方法,该方法负责处理错误日志并从捕获中调用它,则不会违反SRP。

但是,如果您在同一个类中创建此方法,则可能会违反模式,因为您的类将有多个更改原因。