有一個類:這個類是否違反SRP?
class Printer
{
public void StartPrintAndWaitForCompletion()
{
Start();
WaitForCompletion();
}
private void Start()
{
// some logic for start printing
}
private void WaitForCompletion()
{
// some logic that waits for specific state of printer queue
}
}
- 這是否違反類SRP?
- 方法StartPrintAndWaitForCompletion做不止一件事。我應該刪除它,並總是分別調用Start()和WaitForCompletion()?
另外想一想[抽象層次](http://principles-wiki.net/principles:single_level_of_abstraction)。 「打印機」類是一種抽象層次。到底有什麼好處呢?看看它的公共方法。啊,它打印(重命名後)。這是另一個級別。 「打印」意味着什麼?閱讀方法並向下一層:啓動打印機設備並等待它完成。什麼意思是「啓動打印機」?看看「開始」並下降到另一個抽象層次,等等。 – TobiMcNamobi