📌 29일차(2021-08-05,목)
실전 프로젝트(eomcs-java-project)
- 10-a. 자료 구조 다루기 II : 데이터 처리 코드를 캡슐화
📌 알게 된 점들
캡슐화 - 복잡한 코드를 분리하여 메서드에 감춘다. (핵심) 복잡한 코드를 단순화시키자.
캡슐화의 이점 - 메서드를 이용하는 측에 영향을 주지 않으면서 기능의 구현을 변경할 수 있다. (핸드폰 기능들 내부 구조 몰라도 된다. 잘 동작해서 쓰기만 하면 된다.)
교체가 쉽고 유지보수가 쉽다.사용자 UI 중심 클래스 / DAO 데이터 처리를 하는 클래스로 분리 (높은 응집도 : 한 클래스가 한 기능에 집중하게 만든다)
어떤 경우에 클래스를 합치는지 어떤 경우에 클래스를 분리해야하는지?
책임할당 소프트웨어 설계패턴 GRASP(객체지향 밑바닥 개념)
실제 정보를 가지고 있는 클래스로 메서드를 옮기는 것이 유지보수에 더 낫다.
멤버리스트를 바로 공개하면 다른 패키지에 다른 멤버리스트를 추가시킬 수 있다.
그걸 바꿀 수 없도록 외부에서 접근 못하도록 막아야하는데 막을 수 없다.
변수의 값을 함부로 바꾸지 못하도록 접근 범위를 줄이고 대신 게터 메서드를 통해 접근한다.
그보다 더 발전된 것이 생성자 주입배열하고 링크드리스트 적용한 것을 왔다갔다 해도 문제가 없다. = 교체가 쉽다.
별도 클래스로 분리해놓으면 교체가 쉽다.
공통적인 것은 상속받게 한다. Generalization
일단 구현한 다음에 정리해!
'TIL' 카테고리의 다른 글
🚀 bitcamp TIL (21.08.09) (0) | 2021.08.09 |
---|---|
🚀 bitcamp TIL (21.08.06) (0) | 2021.08.06 |
🚀 bitcamp TIL (21.08.03 ~ 21.08.04) (0) | 2021.08.05 |
🚀 bitcamp TIL (21.07.30) (0) | 2021.07.30 |
🚀 bitcamp TIL (21.07.29) (0) | 2021.07.29 |