til(11_29)

김태은·2024년 11월 29일

오늘은 캠프 내에서 세션을 많이 진행한 결과, 강의를 듣지는 못했고,

이전 키오스크 과제를 스프링에 대입하기! 를 도전 중에 있었으나,

코드에 설계가 이상함을 깨닫고, 해당 느낀 바를 적으려 한다.


회고

오늘은 세션에서 아주 중 한 내용인 객체 지향 설계 5가지 중 IoC 와 DIP 그리고 다형성, 상속, 객체 간 결합도 에 대해서 배웠다!


SOLID 는 이전에도 포스팅했고, 강의에서도 몇번 들었기에 쓰무뜨 하게 넘어갔다. 다만, IoC에 대해서 좀더 정리할 것이 생겨서 정리를 해보았다.

***IoC

객체 생성에 대한 책임을 외부로 전가 - 머가 들어오면 그거에 맞게 해줄깨
- 그게 먼지는 관심없어 < - 인터페이스! 로 받고, 사용자가 선택

한 클래스내에서 사용 객체 하나를 지정하는 것에서 - > 상속 미사용

해당 클래스와 다른 클래스에서, 해당 클래스가 객체를 선택하지 않은 행위를 다른 클래스에서 지정을 해줌으로 써! 해당클래스에서 맞은 업무를 다른 클래스에게 전과

다시보니 이전에 포스팅한 내용과 겹친다..그새 까먹은 모양이다.


* 인터페이스 < - > 상속

  • 인터페이스는 안에 있는 모든 메서드를 확장 된(받은) 클래스가 모두 오버라이딩 해야하는 반면,

  • 상속은 부모의 메서드를 사용하고 싶은 기능만 사용(따로 오버라이딩을 하지않아도 된다.) 혹은 자기가 만든 기능만 사용 가능하다.

--- ex 각종 부품의 클래스가 있고, 해당 부품에는 점검하는 기능이 있다고 가정하자!

모든 부품 클래스는 좋든 싫든 출고를 위해서 점검을 받아야하니 필수! - >

모든 클래스가 하나의 기능에 엮여있고, 해당 기능을 클래스로 뺀다면?!

그렇다 부모 클래스로 해당 기능을 넣어주면 끝!

  • ps super !!!

    ex ---

이렇게 하면 부품 클래스들은 점검기능의 메서드를 다 지울 수 있고, 각 클래스마다의 고유 메서드를 자유롭게 사용가능하며, 부모 클래스의 메서드를 굳이 오버라이딩 하지않고 사용이 가능하다!

단! 의존성은 강해진다! - 허허; < - 이러한 이유로 쓸 때, 조심해야하고, 필요할 때만 쓰도록 해야한다.

인터페이스를 이용해서 다형성을 챙기던, 상속을 통해 다형성을 챙긴든, 혹은 안챙기던 상황에 맞게 필요할 때, 적재적소에 쓰자!


느낀점

  1. 결합도를 낮추는 법을 더 자세히 찾아볼 필요성이 있다.

  2. 요구사항을 잘 지켜야, 흐름도를 잘 그릴 수 있다.

  3. 흐름도를 그릴 적에
    기능 - > 도메인 ( - 역할을 생각하며! ) - > 흐름도 - > 객체 간의 관계( - 상속 , 주입 .. )

< - 요구사항을 잘 지켜야, 흐름도를 잘 그릴 수 있다. 일맥상통!

우선 이 흐름이 잘 되면 나중에 클래스 다이어그램 ?, 객체 다이어그램 ? 을 연습해 보자! 사실 저것들이 이것 일지도 모른다.. 하하

알게 된 것

안타깝게도 없다 ㅠ 흑

profile
Spring_4

0개의 댓글