我对C#中的“单一责任”原则有一个澄清。
假设我有一个方法,并且在catch块中,如果我将错误记录在数据库中,是否因为该方法一次执行两项操作而违反了SRP?
public void Single()
{
try
{
//
}
catch(Exception e)
{
// log into db
}
}
答案 0 :(得分:3)
让我们假设您有一个名为“ HandleError”的方法,该方法会接收错误并创建一个日志文件(如果不存在)。一旦创建,它将在该日志文件中存储一些有关该错误的必要信息。
对我来说,如果您在单独类中创建此方法,该方法负责处理错误日志并从捕获中调用它,则不会违反SRP。
但是,如果您在同一个类中创建此方法,则可能会违反模式,因为您的类将有多个更改原因。