개인과제 콘솔 쇼핑몰에서 제시된 기능을 모두 구현한 후

새로운 기능을 더 늘리기보다는 showTotal에서 사용자에게 구체적인 정보를 제공할 수 있게끔 기존 기능을 개선했다..

 

기존

상품명, 총액만 출력되기 때문에 정보가 부족함.

 

개선(목표)

쇼핑몰같은 느낌을 살리고 사용자에게 더 많은 정보를 줌

 

 

 

 

기존 코드

addToCart 장바구니에 물건담기 내부 코드

 

addToCart에서 물건을 담을 때 그 금액을 총액에 합산하고 있다. addToCart 실행 시 사용자에게 입력받은 상품 수량은 메서드 내 인스턴스 변수라 다른 메서드에서 출력할 수 없기 때문이다. 

 

showTotal 장바구니 총 가격보기totalPrice를 출력만 해 준다.

결과적으로 showTotal메서드가 addToCart에 의존하고 있다.

 

 

 

개선 코드

어디서든 카트에 담긴 상품 수량을 알 수 있도록 클래스에 새로운 변수를 만들었다.

이제 클래스 객체마다 각각의 수량(amount)를 저장할 수 있다.

 

 

 

showTotal 장바구니 총 가격 보기

이제 메서드가 호출될 시의 productList를 불러와 직접 총액을 계산한다.

다른 메서드에 의존하지 않는다.

 

clearCart 장바구니 초기화

기존엔 totalPrice만 0으로 초기화시켜 주는 방식을 사용하였으나,

모든 productamount를 0으로 초기화시키는 코드로 수정했다.

 

 

결과적으로 메서드 간 의존성을 줄이고 사용자의 입력을 더 효율적으로 저장, 사용하는 구현으로 수정했다.

 

 

 

 

추가 개선점

showTotal에서 세 개의 List를 선언하지 않고 함수만으로 구현할 수 있을 것 같은데, 개인적으로 리스트 인덱스 사용이 편해서 일단 리스트를 선언하는 방법을 채택했다. 

리스트를 따로 생성하는 것과 여러 개의 함수를 호출하는 것 중 어느 것이 더 비효율적인지 알아봐야 할 듯하다.

+ Recent posts