개인과제 콘솔 쇼핑몰에서 제시된 기능을 모두 구현한 후
새로운 기능을 더 늘리기보다는 showTotal에서 사용자에게 구체적인 정보를 제공할 수 있게끔 기존 기능을 개선했다..
기존
상품명, 총액만 출력되기 때문에 정보가 부족함.
개선(목표)
쇼핑몰같은 느낌을 살리고 사용자에게 더 많은 정보를 줌
기존 코드
addToCart 장바구니에 물건담기 내부 코드
addToCart에서 물건을 담을 때 그 금액을 총액에 합산하고 있다. addToCart 실행 시 사용자에게 입력받은 상품 수량은 메서드 내 인스턴스 변수라 다른 메서드에서 출력할 수 없기 때문이다.
showTotal 장바구니 총 가격보기 은 totalPrice를 출력만 해 준다.
결과적으로 showTotal메서드가 addToCart에 의존하고 있다.
개선 코드
어디서든 카트에 담긴 상품 수량을 알 수 있도록 클래스에 새로운 변수를 만들었다.
이제 클래스 객체마다 각각의 수량(amount)를 저장할 수 있다.
showTotal 장바구니 총 가격 보기
이제 메서드가 호출될 시의 productList를 불러와 직접 총액을 계산한다.
다른 메서드에 의존하지 않는다.
clearCart 장바구니 초기화
기존엔 totalPrice만 0으로 초기화시켜 주는 방식을 사용하였으나,
모든 product의 amount를 0으로 초기화시키는 코드로 수정했다.
결과적으로 메서드 간 의존성을 줄이고 사용자의 입력을 더 효율적으로 저장, 사용하는 구현으로 수정했다.
추가 개선점
showTotal에서 세 개의 List를 선언하지 않고 함수만으로 구현할 수 있을 것 같은데, 개인적으로 리스트 인덱스 사용이 편해서 일단 리스트를 선언하는 방법을 채택했다.
리스트를 따로 생성하는 것과 여러 개의 함수를 호출하는 것 중 어느 것이 더 비효율적인지 알아봐야 할 듯하다.
'Dart' 카테고리의 다른 글
[Dart] dart:io의 여러가지 메서드로 csv 파일 읽기 (0) | 2025.03.17 |
---|---|
[Dart] 비동기 프로그래밍 - Future (0) | 2025.03.14 |
[Dart] 메서드의 사용 (0) | 2025.03.12 |
[Dart] List, Set 개념 및 차이점 (0) | 2025.03.11 |
[Dart] map과 for문을 활용한 class 선언 및 리스트화 (0) | 2025.03.10 |