급여 = 기본급 - (기본급 * 소득세율)
직원의 급여를 계산한다.
기능 분해 방법에 따라 이 프로시저를 더 세분화된 절차로 구체화해야 한다.
직원의 급여를 계산한다.
사용자로부터 소득세율을 입력받는다.
"세율을 입력하세오: "라는 문장을 화면에 출력한다.
키보드를 통해 세율을 입력받는다.
직원의 급여를 계산한다.
전역 변수에 저장된 직원의 기본급 정보를 얻는다.
급여를 계산한다.
양식에 맞게 결과를 출력한다.
"이름: {직원명}, 급여: {계산된 금액}" 형식에 따라 출력 문자열을 생성한다.
직원의 급여를 계산한다.
라는 최상위 문장은 아래 함수 정의로 바꿀 수 있다.
def main(name)
end
이제 첫 번째 하위 단계의 세분화 내용을 이용해 함수 내부를 채울 차례다.
직원의 급여를 계산한다.
사용자로부터 소득세율을 입력받는다.
직원의 급여를 계산한다.
양식에 맞게 결과를 출력한다.
def main(name)
taxRate = getTaxRate()
pay = calculatePayFor(name, taxRate)
puts(describeResult(name, pay))
end
직원
타입에게 정규 직원
과 아르바이트 직원
에 따라 급여 계산 로직이 다르다면 추상 데이터 타입에선 이를 구분할 수 없다.정규 직원
이나 아르바이트 직원
이 있다는 사실은 알 수 없다.정규 직원
, 아르바이트 직원
각 클래스를 정의하고 적절하게 구현Employees
클래스에 hourly
라는 직원 유형을 정의한다면 객체지향을 위반했다고 볼 수 있다.