1) display 함수 내에서 많은 것을 처리하고 있으므로 더 세분화하면 좋을 것.
예를 들어 VanillaIceCreamMenu 안에 바닐라 익스트림, 벨기에 초코 토핑, 캐러멜, 스트로베리를 println으로 출력하고 있는데 data class VanillaExtreme(...): VanillaIceCreamMenu(...) 형태로 상속을 한번 더 하면 좋을 것임.
(Menu > IceCreamMenu > VanillaIceCreamMenu > VanillaExtreme, VanillaBelgiumChoco, VanillaCaramel, VanillaStrawBerry 식으로..)
그리하면 printSubMenu에서 일일이 다 작성하지 않고 list에 각각의 item을 담은 뒤 for 루프를 통해 출력이 가능해질 것.
2) readLine()은 main() 함수의 역할이지 각 subMenu class의 역할은 아님.
입력받는 코드는 각각의 Menu 클래스 내에 있는 것이 아니라 main에 위치해야 하고, 각 Menu 클래스들은 단순히 Menu를 나타내기 위한 용도로 사용되어야 함.
현재 코드는 각 메뉴 클래스가 출력도 하고 입력도 받아야 하는 다중 책임을 가지고 있어서 단일책임원칙에 어긋남.
3) 소감
입력과 출력 기능 구현을 통해 단일책임원칙(single responsibility principle)이 어떠한 것인지 실제로 경험할 수 있었고, 클래스도 필요에 따라 추가 및 세분화하여 상속을 최대한 활용해야 함.
728x90
'앱 개발 > Chapter_Curriculum' 카테고리의 다른 글
[과제] Android 입문 (0) | 2024.03.22 |
---|---|
Chapter3-1 (앱 개발 입문) (0) | 2024.03.20 |
Chapter2 (프로그래밍 문법) (0) | 2024.03.12 |
[미니 프로젝트] Binding (0) | 2024.03.04 |
[미니 프로젝트] ProfileActivity (0) | 2024.02.29 |