說我有一個汽車類:單一職責原則 - 從文件加載列表?
class Car
{
string GetMake()
string GetModel()
int GetYear()
}
而且我持有的汽車名單的自定義CarService類:
class CarService
{
void AddCar(Car car)
void RemoveCar(Car car)
List<Car> GetCars()
... other methods removed for clarity...
}
現在我想從一個文件加載車名單CarService類。我的舊OOP直覺就是將它作爲CarService類中的LoadFromFile()方法。然而,當我正在學習SRP和可測試性時,我不太確定。
遵循單一責任原則,設計此方法的正確方法是什麼?我應該有CarLoader類嗎?
UPDATE
我認爲解決的辦法應該是在各種各樣的語言一樣,但我會用C++。如果我使用C#,Java或python,我的問題將會完全相同。
那麼這是不可能的,我將使用一個靜態的方法,因爲我從可測試性的角度來看這些是邪惡的。我不一定要嚴格遵守SRP,但如果它通常被認爲是更好的設計,那麼我可能會選擇SRP解決方案。 – User