meshjo_12 2023. 10. 6. 17:23

2023.07.25 수업 이슈

  • 재사용성을 높이는 인테페이스 활용
  • static 키워드
  • 싱글톤
  • Collection API

 

▶Tight한 Coupling vs Loose한 Coupling

Tight한 Coupling은 주사위가 추가될 때마다 Player01 코드가 수정되어야 한다(필드 추가 및 setXxx)

그에 반해, Loose한 Coupling은 주사위가 추가될 때마다 코드를 수정할 필요없다. 이를 통해, 재사용성 높은 코드를 작성할 수 있다.

 

▶static 키워드 성질

  • static 변수 == class 변수 == 전역변수
  • main보다 먼저 실행되는 부분이 static block이다. 글로벌(공용 공간) 초기화할 일이 있으면 static block을 사용한다. 웹에서 아주 중요한 개념이다.
  • gc는 heap영역만을 관리한다. method area는 관리하지 않는다. 따라서, static 변수는 함부로 쓰면 안된다.

▶싱글톤 : 객체의 인스턴스가 오직 1개만 생성되도록 하는 디자인 패턴

<Pattern>

1. 일단 클래스 안에서 객체 하는 먼저 생성 ➡ static private 객체 생성

2. 다른 클래스에서는 객체 생성을 못하도록 막아둔다. ➡ private 생성자

3. 하나 생성한 객체를 여기저기서 갖다 쓰도록 public한 기능으로 리턴받아둔다. 이때 반드시 static한 성질의 메소드로 만들어둔다. ➡ public static ServiceImpl getInstance()

 

 

▶자바의 단일 상속의 단점을 인터페이스가 극복한다? 

잘못된 말이다. Hasing as relation, Is a relation 으로 극복한다.

강력한 contract, Loose coupling을 만드는 것이 인터페이스이다.

 

▶Collection API

 

▶Final

static 키워드와 가장 많이 함께 쓰이는 키워드는 final

Usage Modifier이라고 한다.

static final, final static 순서 상관없다.

 

final

::

"내가 마지막이야~~~"

final + 변수 :: "내가 마지막 변수야~~~" :: 상수값(고칠 수 없다)

final + 메소드 :: "내가 마지막 메소드야~~~" :: 오버라이딩 금지

final + 클래스 :: "내가 마지막 클래스야~~~" :: 상속 금지