[학습] 객체 지향 프로그래밍 입문 정리

인프런 최범균님의 객체 지향 프로그랭 입문 강좌를 정리한 내용입니다.

객체

절차지향

객체지향

객체의 핵심

public class Member {
  private String name;
  private String id;

  public void setName(String name){
    this.name = name;
  }
  public String getName(){
    return name;
  }
  ...생략...
}

이런 것은 객체 라기 보다는 구조체 라고 하는게 나을 듯 -> 여기에 Member 클래스에 기능들이 붙게되면 그제서야 객체 라고 표현 가능 하다.


캡슐화

캡슐화는 연쇄적인 변경 전파를 최소화

캡슐화 시도는 기능에 대한 의도(이해)를 높임

캡슐화를 위한 규칙

if (acc.getMembership() == REGULAR){
 // 정회원 기능
}

아래 처럼 변경하기!

if (acc.hasRegularPermission()){
  // 정회원 기능
}

상속보단 조립

상속의 단점

상속의 단점 해결 방법 : 조립

상속보다는 조립


기능과 책임 분리

클래스나 메서드가 커지면 절차지향의 문제가 발생함

몇 가지 책임 분배/분리 방법

역할 분리가 잘되면 테스트가 용이해짐


의존과 DI

의존대상 많을 때, 기능 많은 경우

의존 대상 많을 때

의존 대상 객체를 직접 생성하면 ?

의존 대상 객체를 직접 생성하지 않는 방법

DI의 장점은?

연관 포스트