ビジネスオブジェクトに「データアクセス」メソッドを置くと、私はSingle Responsibility Principle(SRP)に違反しますか?ロードメソッドがクラス自体に存在する場合、メソッドがどのクラスにあるかを推測する必要がなくなり、APIがよりユーザーフレンドリーであると感じていますか?ビジネスオブジェクトの静的ファクトリが単一責任原則に違反していますか?
例:私は問題を見ない
public class Image
{
public static Image FromFile(string filename)
{
return ImageLoader.LoadImage(filename)
}
public void SetPixel(int x, int y, Color color)
{
}
}
@Johnあなたは、(自分のクラスに入っていても)このために別々のメソッドを追加し始めたら、コールの匂いに気づくでしょう。その臭いは、クラスがいくつかのことをしているからです。 – eglasius
@Freddy:私が言っていることは、外部のデータストリームから自分自身を水分補給することはおそらくあなたの責任ではないと言うのは妥当だが、これの一例は必ずしも悪いことではないということだ。 –