나는 얼마전에 Chain of Responsibility를 찾고 있었는데, this 예제를 보았습니다.Chain of Responance 디자인 패턴과 간단한 if-elseif-else 블록의 차이점은 무엇입니까?
기본적으로 추상 핸들러가 있으며 구체적인 핸들러는 각각 부모 추상 핸들러의 handle 메소드를 구현합니다. 구현은 처음에는이 특정 처리기가 현재 요청을 처리 할 수 있는지 확인하기위한 검사가 있으며, 그렇지 않으면 요청을 후속 장치로 전달합니다.
이제 간단한 if-else 조건부 블록을 사용하여 동일한 작업을 수행 할 수도 있습니다. 여기에, 위의 링크에서 첫 번째 예제를 이용하려면 내가 그것을 바꿀 것 방법입니다
class SingleHandler
{
if(request > 0 && request <= 10)
{
// Process request
}
else if(request > 10 && request <= 20)
{
// Process request differently
}
else if(request > 20 && request <= 30)
{
// Process request differently
}
}
자, 내 질문은, 둘 사이의 근본적인 차이는 무엇인가? if-else 블록을 사용하여 똑같은 기능을 제공 할 수 있다면 책임의 한계를 사용해야하는 특정 이유가 있습니까? 성능, 메모리 소비, 유지 보수성, 확장 성 측면에서 어느 것이 더 낫습니까?