package com.haenin.section04.interfacesegregation.resolved;
public class Application {
public static void main(String[] args) {
BasicPrinter bp = new BasicPrinter();
bp.print();
AdvancedPrinter ap = new AdvancedPrinter();
ap.print();
ap.fax();
ap.scan();
}
}
package com.haenin.section04.interfacesegregation.resolved;
public interface FaxMachine {
void fax();
}
package com.haenin.section04.interfacesegregation.resolved;
public interface PrintOnly {
void print();
}
package com.haenin.section04.interfacesegregation.resolved;
public interface Scanner {
void scan();
}
package com.haenin.section04.interfacesegregation.resolved;
public interface MultiFunctionPrinter extends FaxMachine, PrintOnly, Scanner {
}
package com.haenin.section04.interfacesegregation.resolved;
public class BasicPrinter implements PrintOnly{
@Override
public void print() {
System.out.println("깔금하게 문서를 출력합니다.");
}
}
package com.haenin.section04.interfacesegregation.resolved;
public class AdvancedPrinter implements MultiFunctionPrinter{
@Override
public void fax() {
System.out.println("팩스를 보냅니다.");
}
@Override
public void print() {
System.out.println("문서를 깔끔하게 출력합니다.");
}
@Override
public void scan() {
System.out.println("심지어 스캔도 가능합니다.");
}
}