(TIL) 20220521, 정적 메서드/기본 메서드, 디자인 패턴

2022. 5. 22. 02:45TIL(Today I learned)

반응형

🏴󠁩󠁤󠁪󠁷󠁿Facts(한 것)


  • 자바 9 공부
  • 디자인 패턴 공부하기(헤드퍼스트 디자인패턴)
  • '결승부터 시작하는 커리어' 세션 참여
  • 운동하기
  • MVC 패턴 강의듣기

🏴󠁩󠁤󠁪󠁷󠁿Findings(배운 것)


자바 8 이전까지는 모든 메서드가 추상 메서드여야 했다. -> 구현부가 없어야 했다.


하지만 자바 8 이후부터는 실제 구현이 있는 정적 메서드, 기본 메서드, 비공개 메서드를 추가할 수 있다.


먼저 정적 메서드는 인스턴스를 생성하지 않고 바로 사용할 수 있다는 장점이 있다.


특히 호출자 입장에서는 인스턴스가 어떤 클래스의 인스턴스 인지 신경쓸 필요가 전혀 없기 때문에 정적 메서드가 사용되곤 한다.

public interface IntSequence {
    static IntSequence digisOf(int n) {
        return new DigisSequence(n);
    }
}

이렇게 구현 했다면 다른 클래스에서

InteSequence.digisOf(10);

인스턴스를 생성하지 않고 이렇게 바로 사용이 가능하다.


기본 메서드의 경우 이름처럼 기본 동작에 대한 구현을 작성할 수 있다.


당연하게도 따로 구현하지 않는다면 기본 동작으로 작동한다.


이때 문제가 생기는데 바로 다중 구현을 사용할 때이다.


구현하려하는 두개의 인터페이스에 같은 이름의 메서드가 있다면?


이때는 super 키워드를 사용해서 메서드를 호출 할 수 있다.


이 부분은 슈퍼클래서 확장에서 따로 다뤄야한다.


반복자 패턴, 컴포지트 패턴, 상태 패턴을 읽고 간략하게 정리해봤다.

GitHub - crescent98/design-pattern-cau-study

Contribute to crescent98/design-pattern-cau-study development by creating an account on GitHub.

github.com

GitHub - crescent98/design-pattern-cau-study

Contribute to crescent98/design-pattern-cau-study development by creating an account on GitHub.

github.com

🏴󠁩󠁤󠁪󠁷󠁿Affirmation(자기선언)


  • 매일 알고리즘 문제 1문제 이상 풀기 -> 실패
  • 자바 8버전에 익숙해지기 -> 성공

🏴󠁩󠁤󠁪󠁷󠁿여담

반응형