Collection: 데이터의 집합, 그룹
JCF(Java Collections Framework) : 데이터를 저장하는 자료구조와 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것
값을 저장하는 다양한 컨테이너를 상황에 맞게 사용할 수 있게 한다.
다수의 Data를 다루는데 표준화된 클래스들을 제공해줘서 DataStructure을 직접 구현할 필요가 없다.
코드의 재사용이 쉽다.
자바의 특성에 따라 다형성을 가지고 있기 때문에 인터페이스 변수에 필요한 자료구조를 가진 구현체를 선택하여 저장할 수 있다.
(두가지 리스트를 합치는 경우, 비교하는 경우 등등 list로 선언시 활용가능)
deprecated
https://hpotter1993.tistory.com/49
public class Singleton {
//싱글톤 객체를 static 변수로 선언
private static Singleton instance;
private int msg;
//외부에서 생성자 호출 막기
private Singleton(int msg) {
this.msg = msg;
}
//인스턴스를 전달
public static Singleton getInstance(int msg) {
if (instance == null) {
instance = new Singleton(msg);
}
return instance;
}
public void printMsg() {
System.out.println(msg);
}
}
new키워드를 사용해 직접 객체를 생성하므로 DIP위반
DIP : 의존관계 역전원칙 (dependency inversion principle)
- 추상화에 의존해라 구체화에 의존하면 안된다. →의존성주입
- 인터페이스에 의존해라 구현 클래스에 의존하면 안된다.
- 역할에 의존해라 (김태희가 연기하지 않아도 줄리엣역할에 충실해라)
- MemberRepository m = new MemoruMemberRepository(); →인터페이스와 구현클래스에 동시에 의존 MemberService 클라이언트가 구현클래스를 직접 선택
https://steady-coding.tistory.com/356