Hop*_*ess 5 c# solid-principles
有一个这样的课:
class Application
{
private Process _process;
private static string _applicationPath = string.Empty;
public void Start(string arguments)
{
if (!File.Exists(_applicationPath))
Deploy();
_process = Process.Start(_applicationPath, arguments);
}
public void SomeMethod()
{
//method that manipulate _process
}
private void Deploy()
{
// copying, installation steps (takes some time) and assign _applicationPath
}
}
Run Code Online (Sandbox Code Playgroud)
我使用静态字段很糟糕吗?
这取决于你用它做什么。在这种情况下,由于您使用非静态方法( )更改了Deploy()它,那么是的,它可能很糟糕。如果所有实例的值都相同,则将其设置在静态构造函数或属性中(假设应用程序配置将设置它)。
这是违反 SRP 原则 (SOLID) 的示例吗?
这个班级的职责是什么?你能从逻辑上提取Deploy和 ,Start还是其中一个需要另一个?