SEB_BE_41

JAVA - abstract

Greatshine 2022. 8. 19. 16:14

 

 

 

 

abstract(추상)이라는 개념이 뭔지 알기 위해 배운 로직이다.

빨간 화살표의 의미는

하위 클래스나 메소드중 하나라도 abstract를 사용하는 것이 있다면

상위 클래스 또한 abstract값을 가지게 된다는 것을 의미한다.

abstract를 사용하면 반드시 그것을 상속하는 것이 있어야 된다고 하는데, 왜 그런 것일까?

 

 

 

 

지금까지 많이 보던 Calculator 예제이다.

차이점이라고 하면 sum과 avg메소드가 DecoPlus와 DecoMinus로 나눠진 것이다.

이는 화면에 출력하는 모습을 달리하기 위해 개발자가 의도적으로 바꾼 것이다.

 

 

 

 

따라서 추상을 사용하는 이유는

사용자가 건들일 필요가 없는, 건드리면 안 되는 공통되는 로직을 상위 클래스에서 정의하고

사용자가 값을 넣어야 정상적으로 작동하는 다양한 기능을 가진 로직은 하위 클래스에서 상속받아 정의하게끔

하는 것이다. 라고 정리할 수 있다.

 

 

 

 

추가적으로 넣을 수 있는 코드다.

중복의 제거를 위한 것이다.

 

 

디자인 패턴

 

template method pattern이라고도 하는 디자인 패턴은 나에겐 처음 들어보는 개념이다.

교육을 해주시는 분도 부담 없이 알아두기만 하면 된다고 하여서 내가 이해한 것만 정리해보겠다.

 

https://opentutorials.org/course/1223/6062

 

 

초등학교 때 많이 이용하던 템플릿이다.

이는 우리가 많이 이용하는 도형을 모아놓은 것이다.

디자인 패턴의 같은 말에 template이라는 말이 들어가는 것을 알 수 있듯이

디자인 패턴이라는 것은 프로그래밍에서도 반복되는 패턴이 있고 이를 정형화되게 정리한 것이라고 이해할 수 있다.

장점에는 좋은 설계를 단기간에 학습할 수 있다는 것과 소통에 큰 도움을 준다는 것이 있다고 한다.

아무래도 좋은 설계, 좋은 프로그래밍을 위해서는 서로 약속된 코드와 패턴을 쓰는 것이 좋다 보니

이런 말이 생겨난 것 같다.