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클래스를 별도로 구분하면 이점이 있습니다. (모듈화)
클래스를 나누면 이점
· 객체지향에서는 아주 큰 하나의 클래스보다, 아주 작은 열 개의 클래스가 더 큰 힘과 위력을 발휘합니다.
· 변경이 있을 때, 변경되는 클래스의 범위를 줄일 수 있습니다.
· 작은 크기의 클래스를 다른 클래스의 정의에 활용할 수 있습니다.
'Development > Java' 카테고리의 다른 글
ConsoleInputEx03-Scanner클래스의 다양한 메소드 사용 (0) | 2015.07.20 |
---|---|
일반 지정자(modifier) (0) | 2015.07.20 |
MyClassMain-은닉화, 캡슐화 - 클래스 분리 (0) | 2015.07.16 |
정보은닉(Information Hiding) (0) | 2015.07.15 |
생성자 오버로딩(Overloading) (0) | 2015.07.15 |