如果一個對象解析它自己的輸入,它是否被認爲是破壞SRP?如果一個對象解析它自己的輸入,它是否被認爲是破壞SRP?
例如
class A
{
int x;
string y;
float f;
A(string x, string y, string f)
{
this.x = int.Parse(x);
if (this.x < 0 || this.x > 10)
{
throw new ArgumentOutOfRangeException();
}
this.y = y;
this.f = float.Parse(f);
}
}
,或有一個私人的構造和使用,解析一個公共靜態方法和檢查輸入,並返回A
。
而不是傳遞一個int,字符串和浮點數並解析並檢查它們是否在其他地方有效。
IMO你的構造函數應該採取正確的類型,而不是做任何解析。 –
解析並創建對象的公共靜態方法呢? @MatthewWatson – shinzou
這樣會更好,因爲你可以給它一個更具描述性的名字,而不僅僅是構造函數。但在我看來,將字符串解析爲浮點數和整數的責任屬於獲取這些字符串的代碼區域,或者屬於某些類中間的代碼。 –