我不是SOLID原则的专家,因此得到了这个问题。 以下是否违反SOLID原则?如果是,那么理想的解决方案是什么? (请查看示例后面突出显示的代码)
class IUser
{
public:
virtual string GetName() = 0;
private:
string m_strName;
};
class CUser : public IUser
{
public:
CUser(string strEmail) : m_strEmail(strEmail) {}
virtual string GetName() {return m_strName;}
string m_strEmail;
};
class ISignIn
{
public:
virtual IUser* GetUser(string strEmail) = 0;
};
class CSignIn : public ISignIn
{
public:
virtual IUser* GetUser(string strEmail)
{
return new CUser(strEmail);
}
};
我关注的代码是:
return new CUser(strEmail);
感谢大家回答这个问题!