외부 제공 클래스 정의하기 - 파일당 하나의 외부 제공 클래스 정의하기, 클래스를 나누면 이점

CODEDRAGON Development/Java

반응형


 

파일당 하나의 외부 제공 클래스 정의하기

public class Calculator{

 

private Adder adder;

private Multiplier multipler;

private Divider divider;

private Substractor substractor;

public Calculator( ){

adder = new Adder();

multipler = new Multiplier();

divider = new Divider();

substractor = new Substractor();

}

public int add(int num1, int num2){

return adder.add(num1, num2);

}

int times(int num1, int num2){

return multiplier.tiems(num1, num2);

}

int divide(int num1, int num2){

return divider.divide(num1, num2);

}

int subtract(int num1, int num2){

return substractor.subtract(num1, num2);

}

}

Calculator.java

class Adder{ 

int add(int num1, int num2){

}

}

Adder.java

class Multiplier{ 

int times(int num1, int num2){

}

}

Multipler.java

class Divider{

int divide(int num1, int num2){

}

}

Divider.java

class Substractor{ 

int subtract(int num1, int num2){

}

}

Substractor.java

 

·       외부에서는 Calculaor 클래스의 존재만 알면 되고

·       Adder, Multiplier, Divider, Substractor 클래스의 존재는 알 필요 없습니다.

·       그리고 이렇게 외부에 노출시킬 클래스를 public으로 선언합니다.

 

·       계산기 기능의 완성도를 높이기 위해서

·       Calculator 클래스 이외에 Adder, Multiplier, Divider, Substractor클래스를 별도로 구분하면 이점이 있습니다. (모듈화)

 


 

 

 

클래스를 나누면 이점

·       객체지향에서는 아주 큰 하나의 클래스보다, 아주 작은 열 개의 클래스가 더 큰 힘과 위력을 발휘합니다.

·       변경이 있을 때, 변경되는 클래스의 범위를 줄일 수 있습니다.

·       작은 크기의 클래스를 다른 클래스의 정의에 활용할 수 있습니다.