public class FooList {
public boolean add(Foo item) {
int index = indexOf(item.getKey());
if (index == -1) {
list.add(item);
}
return index == -1;
}
}
由於這增加了項目和返回成功值,它違反了單責任原則嗎?如果是這樣,這是否重要?「迴歸成功」的方法是否違反單一責任原則?
另一種方法是拋出一個異常:
public class FooList {
public boolean add(Foo item) throws FooAlreadyExistsException {
int index = indexOf(item.getKey());
if (index == -1) {
list.add(item);
} else {
throw new FooAlreadyExistsException();
}
}
}
但這樣做也違反了單責任心的原則?看來該方法有兩個任務:如果該項目不存在,則添加它;否則,拋出異常。
獎金問題:可以返回null的方法是否違反單責任原則?下面是一個例子:
public class FooList {
public Foo getFoo(String key) {
int index = indexOf(key);
return (index == -1) ? null : list.get(index);
}
}
返回一個Foo或null,根據情況,「做兩件事」?