컴퓨터공학 💻 도서관📚
Part2. 3-16 객체 코딩으로 복습하기 2 본문
테스트 프로그램은 다음과 같습니다. 문자를 입력 받아 입력되는 문자에 따라 배분 규칙을 수행하도록 합니다.
public class SchedulerTest {
public static void main(String[] args) throws IOException {
System.out.println("전화 상담원 할당 방식을 선택하세요");
System.out.println("R : 한명씩 차례대로");
System.out.println("L : 대기가 적은 상담원 우선");
System.out.println("P : 우선순위가 높은 고객우선 숙련도 높은 상담원");
int ch = System.in.read();
Scheduler scheduler = null;
if ( ch == 'R' || ch =='r') {
scheduler = new RoundRobin();
}
else if ( ch == 'L' || ch =='l') {
scheduler = new LeastJob();
}
else if ( ch == 'P' || ch =='p') {
scheduler = new PriorityAllocation();
}
else {
System.out.println("지원되지 않는 기능입니다.");
return;
}
scheduler.getNextCall();
scheduler.sendCallToAgent();
}
}
인터페이스를 활용한 정책 프로그래밍
테스트 클래스에서 3개의 구현 클래스가 모두 인스턴스를 생성하기 때문에
각 클래스는 인터페이스의 메서드를 모두 구현해야 한다.
package ch16.scheduler;
public interface Scheduler {
public void getNextCall();
public void sendCallToAgent();
}
package ch16.scheduler;
public class RoundRobin implements Scheduler{
@Override // 재정의
public void getNextCall() {
System.out.println("상담 전화를 순서대로 대기열에서 가져옵니다.");
}
@Override
public void sendCallToAgent() {
System.out.println("다음 순서의 상담원에게 배분합니다.");
}
}
package ch16.scheduler;
public class LeastJob implements Scheduler{
@Override
public void getNextCall() {
System.out.println("상담 전화를 순서대로 대기열에서 가져옵니다.");
}
@Override
public void sendCallToAgent() {
System.out.println("현재 상담업무가 없거나 상담대기가 가장 적은 상담원에게 할당합니다.");
}
}
package ch16.scheduler;
public class PriorityAllocation implements Scheduler{
@Override
public void getNextCall() {
System.out.println("고객등급이 높은 고객의 call을 먼저 가져옵니다");
}
@Override
public void sendCallToAgent() {
System.out.println("업무 숙련도가 높은 상담원에게 먼저 배분합니다");
}
}
'✅🌲강의 복습 노트 > 패캠 JavaSpring 강의,코드 복습' 카테고리의 다른 글
Part2. 4-2 Object 클래스의 메서드 활용 (equals 메서드, hashCode 메서드, clone() 메서드) (0) | 2025.06.17 |
---|---|
Part2. 4-1 Object 클래스 - 모든 클래스의 최상위 클래스 (toString 메서드) (0) | 2025.06.17 |
Part2. 3-16 객체 코딩으로 복습하기 1 (0) | 2025.06.16 |
Part2. 3-15 여러 인터페이스 구현하기, 인터페이스의 상속 (1) | 2025.06.13 |
Part2. 3-14 인터페이스의 여러가지 요소(상수, 메서드) (1) | 2025.06.12 |
Comments