• 코드 집중화를 하면 유지보수에 이점이 많다.
  • 추상화 : 서비스 집중화 ( 캡슐단위의 공통서비스) ->만들고자하는 객체가있을경우에 그런객체에대한 공통분모를 만들어서 추상화한다.

  • 추상 클래스를 만드는 두가지 상황
    1. 개체들의 공통서비스 집중화 장정 : 1. 코드집중화 2. 일괄처리
    2. 향후 제품을 위한 프레임 워크
  • 추상클래스 : 공통 분모
  • 추상메서드 : 공통으로 제공되어야 할 서비스

모양 Shape(부모클래스) 를 추상클래스로 만들었다. 하나 배열로 다담을수가 있다. 자식클래스들의 공통 분모를 공통 클래스에 두면 집중화 효과도 있다. ↓

move 공통된건 가져가고 아닌건 두자.

Shape[] shapes = new Shape[10];

shapes[0] = new Circle();
shpess[1] = new Rect();
...

public void paint() {
    for(int...)
        shape[i].paint();
}

코드를 짜면 이런식으로 될건데 shape[i].paint() 에서 오류가 난다. 왜 ? paint 는 코드명만 같고 구현이 다르기 때문이다.

페인트

위 그림과 같이 공통 서비스 함수 paint()만 올리자 뼈대만 올리는 공통 메서를 추상메서드라고 한다.

댓글남기기