구조적 프로그래밍은 순서도에 의해 알고리즘의 참/거짓을 증명하기 쉽게 되어 있음
(알고리즘 수업 들어보면 아마 다 구조적인 증명법 다룰꺼다)
구조적 프로그래밍은 제어 흐름이 의존성 흐름하고 같음
만약 A가 B를 제어한다고 했을 때, A는 B에 의존적임
객체지향 패러다임은 신기한게 각 메소드의 참/거짓의 증명이 가능하긴 한데 ㅈㄴ 힘듦 (해보셈, 다형성때문에 ㅈ될껄)
(순서도가 개 뒤죽박죽으로 나옴)
그래서 귀납적 테스트 방법을 사용하는게 대세가 됨
다만 객체 지향은 제어 흐름이 의존성 흐름하고 같지 않을 수 있음
A가 B를 제어한다고 하더라도 A는 B의 인터페이스를 통해 B를 제어할 수 있기 때문에
결국, A는 B에 의존하지 않고, B는 A에 의존적임(인터페이스 설계가 A의 요구사항에 의해 완성되기 때문)
=> 제어흐름과 의존흐름이 서로 다르다.
=> Dependency Inversion
님 글 재밌는데 자주 들러주세요