이것은 사소한 문제이지만, 이런 식으로 코딩해야 할 때마다 반복이 귀찮게하지만 솔루션 중 어느 것이 나쁘지 않은지 확실하지 않습니다.
if(FileExists(file))
{
contents = OpenFile(file); // <-- prevents inclusion in if
if(SomeTest(contents))
{
DoSomething(contents);
}
else
{
DefaultAction();
}
}
else
{
DefaultAction();
}
- 이런 종류의 논리에 대한 이름이 있습니까?
- 나는 너무 OCD인가?
호기심을 위해서만 악의적 인 코드 제안에 개방적입니다 ...
make sure I have valid data for DoSomething(), and then DoSomething() with it. Otherwise, take DefaultAction()
.. DoSomething ()에 대한 데이터가 있는지 확인하기위한 구체적 세부 사항은 추상화 레벨이 낮으므로 다른 기능이어야합니다. 이 함수는 더 높은 추상화 레벨에서 이름을 가질 것이며, 그 구현은 로우 레벨이 될 것입니다. 아래의 좋은 답변이이 문제를 해결합니다.
DefaultAction
통화가 DRY 원칙을 위반합니다