밀김 2023. 3. 16. 11:02
728x90

 

 

 

 

 

 

- 구성관계 : 부모의 기능을 물려 받는다는 의미, 상속이라고도 얘기할수 있다

 

- has a 관계 : 부품을 갖고와서 조립하는것

 

- 컴포지션 composition(구성) has a 관계 : 얘를 갖고 나를 구성하고 있다 (상속,일체형) 

 

- 어쏘시에이션 association(연관) has a 관계 : 분리형(setter로 인자를 끼워줘야함)

 

 - 컨스트럭터 constructor (생성자)

 

- 그림그릴때 + : public (+없으면 private)

 

 

- 일체형은 setter를 쓰지 않고 객체에서 불러온다 

(일체형은 데이터를 바꿀수 없다는 단점이 있고, 장점은 상속형이라 안에 뭐가 있는지 일일이 신경 안써도 된다)

ExamConsole 생성시 Exam도 같이 생성된다. (ExamConsole이 new로 만들어질때 같이 쓸 Exam이 함께 생성된다) 

ExamConsole console = new ExamConsole();

console.input();

public class ExamConsole {

    private Exam exam;

    public ExamConsole(){

        this.exam = new Exam();

    }

}

 

 

- 분리형은 setter를 쓴다 (오버로드도 분리형) 꽂아서 넣어주는 방식

분리형은 일체형과 다르게 Exam exam = new Exam(); 해서 exam객체를 생성해줘야만 한다 

console.setExam(exam);과정은 setExam에 exam을 넣어준다는 의미

Exam exam = new Exam(); //부품생성

ExamConsole console = new ExamConsole();

console.setExam(exam);//조립

 

- 일체형,분리형은 상황에 맞게 선택해서 쓰면 된다

 

 

검은 마름모는 일체형(컴포지션)을 의미한다

 

 

 

- DI (Dependency Injection 의존관계 주입) : 세팅이 되는 애를 부품으로 칭하는데 그것을 Dependency(의존) 이라고 한다

console.setExam(exam);//조립

여기서(exam)이 Dependency가 되는것이다. 인젝션은 꽂아넣다 의 의미다. 부품(디펜던시)+결합(인젝션)

 

- 어그리게이션 aggregation has a 상속(하얀마름모로 표현):  앞으로(향후에) 끌어모으겠다 필요한 부품들을?

 

 

- is a 상속 관계 : 부품이 아닌 틀을 가져와서 살짝 고치거나 추가해서 사용하는것 (확장으로도 표현한다)

- is a 상속 사용법은 calss에

public class NewlecExam extends Exam {

를 붙여주면 된다 (Exam을 기반 틀로 하여 수정하겠다 라는 의미)

 

- 기반이 되는것, 틀이 되는 애들을 프레임워크 라고 부른다

 

 

 

 

 

 

 

 

728x90