개발바닥

자바 추상화 본문

개인 공부/자바 디자인 패턴

자바 추상화

라이언 2019. 1. 30. 12:08
반응형

추상화란 어떤 영역에서 필요로 하는 속성이나 행동을 추출하는 작업을 의미한다.


일반적으로 추상화는 사물들의 공통된 특징, 즉 추상적 특징을 파악해 인식의 대상으로 삼는 행위이다.


자바에서 추상화란 공통된 행위필드를 모아서 클래스를 만드는 것이다.


캡슐화는 정보 은닉을 통해 높은 응집도와 낮은 결합도를 갖도록 한다.

(응집도 : 클래스나 모듈 안의 요소들이 얼마나 밀접하게 관련되어 있는지를 나타낸다.

결합도 : 어떤 기능을 실행하는 데 다른 클래스나 모듈들에 얼마나 의존적인지를 나타낸다.)


일반화 관계는 객체지향 프로그래밍 관점에서 상속 관계라 한다. 여러 개체들이 가진 공통된 특성을 부각시켜 하나의 개념이나 법칙으로 성립시키는 과정이다. 공통된 속성이나 행위를 하나에 클래스에 모아서 상속받아서 자식 클래스가 사용한다. 이 클래스 관계를 일반화 관계(상속 관계)라고 한다.


다형성은 서로 다른 클래스의 객체가 같은 메시지를 받았을 때 각자의 방식으로 동작하는 능력이다.

(자바에서는 추상메서드를 호출하면 자동으로 오버라이딩 된 메서드를 호출한다.(동적바인딩))


피터 코드의 상속 규칙 (상속의 오용을 막기 위해 상속의 사용을 엄격하게 제한하는 규칙들을 만들었다.)

  • 자식 클래스와 부모 클래스 사이는  '역할 수행' 관계가 아니어야 한다.
  • 한 클래스의 인스턴스는 다른 서브 클래스의 객체로 변환할 필요가 절대 없어야 한다.
  • 자식 클래스가 부모 클래스의 책임을 무시하거나 재정의하지 않고 확장만 수행해야 한다.
  • 자식 클래스가 단지 일부 기능을 재사용할 목적으로 유틸리티 역할을 수행하는 클래스를 상속하지 않아야 한다.
  • 자식 클래스가 '역할' , '트랜잭션', '디바이스' 등을 특수화 해야한다.


반응형

'개인 공부 > 자바 디자인 패턴' 카테고리의 다른 글

싱글턴 패턴  (0) 2019.03.17
스트래티지 패턴  (0) 2019.02.10
디자인 패턴  (0) 2019.02.01
SOLID 원칙  (0) 2019.01.30
모델링  (0) 2019.01.30
Comments