"제어 반전"의 두 판 사이의 차이

잔글 (Jmnote 사용자가 제어 반전 문서를 제어의 역전 IoC 문서로 옮겼습니다)
3번째 줄: 3번째 줄:
;제어의 역전, 제어 역전, 제어 반전, 제어의 반전, 역제어<ref>"제어의 역전" 5,900개, "제어 역전" 3,090개, "제어의 반전" 2,300개, "제어 반전" 1,760개</ref>
;제어의 역전, 제어 역전, 제어 반전, 제어의 반전, 역제어<ref>"제어의 역전" 5,900개, "제어 역전" 3,090개, "제어의 반전" 2,300개, "제어 반전" 1,760개</ref>
* 추상화 원칙의 한가지
* 추상화 원칙의 한가지
* 제어 흐름 구조가 뒤바뀌는 것
* 실행에 필요한 객체의 생성·사용 등 제어 권한을 위임하는 것
* 절차적 프로그래밍과 비교했을 때 시스템 제어흐름이 역전되어 있는 소프트웨어 아키텍처 설계
* 절차적 프로그래밍과 비교했을 때 시스템 제어흐름이 역전되어 있는 소프트웨어 아키텍처 설계
* 예시: [[템플릿 메소드 패턴]]


==목적==
==목적==

2015년 9월 18일 (금) 09:10 판

1 개요

Inversion of Control; IoC
제어의 역전, 제어 역전, 제어 반전, 제어의 반전, 역제어[1]
  • 추상화 원칙의 한가지
  • 제어 흐름 구조가 뒤바뀌는 것
  • 실행에 필요한 객체의 생성·사용 등 제어 권한을 위임하는 것
  • 절차적 프로그래밍과 비교했을 때 시스템 제어흐름이 역전되어 있는 소프트웨어 아키텍처 설계
  • 예시: 템플릿 메소드 패턴

2 목적

  • 한 태스크의 실행을 구현에서 분리함
  • 모든 시스템이 설계 목적에 집중하게 함
  • 다른 시스템이 무엇을 할지 추측하지 않아도 됨
  • 시스템을 바꿔도 다른 시스템에 부작용을 주지 않음

3 예시

public class ServerFacade {
	public Object respondToRequest(Object pRequest) {
		if (!businessLayer.validateRequest(pRequest)) {
			return null;
		}
 
		DAO.getData(pRequest);
		return aspect.convertData(pRequest);
	}
}
public class ServerFacade {
	public Object respondToRequest(Object pRequest) {
		return DAO.getData(pRequest);
	}
}

4 같이 보기

5 참고 자료

  1. "제어의 역전" 5,900개, "제어 역전" 3,090개, "제어의 반전" 2,300개, "제어 반전" 1,760개
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}