본문 바로가기

# 미사용

안드로이드, 비트 계산기

프로젝트 개요

모바일 프로그래밍 2주차 과제.

지금까지 배웠던 내용(버튼, 텍스트뷰, 온클릭 이벤트)으로 간단한 계산기 어플을 만드는 것.


교수님께서는 괄호와 사칙연산만 되면 괜찮다고 하셨지만,

개인적인 욕심으로 비트연산자 및 함수까지 넣어봤다.


아쉬운 점은,

윈도우 계산기처럼 잘못된 수식을 원천방지하는 것을 목표로 했지만,

의외의 상황이 많아 80% 정도밖에 구현하지 못했다는 점.


프리뷰



   

구현 상세

MainActivity

  • 오로지 버튼과 텍스트뷰, Mapper에 이벤트를 전달하는 함수만 존재한다.
  • 버튼을 클릭하면 Mapper에 이벤트를 전달하여 대신 처리하게끔 한다.

Mapper

  • MainActivity와 Eval 사이를 중계해주는 역할을 한다.
  • 이벤트를 파싱하고 해당 결과값으로 MainActivity을 갱신하는 것이 주 역할.
  • 수식의 계산이 필요하다면 Eval에 수식을 넘겨서 대신 처리하도록 한다.

Eval

  • Mapper에서 넘긴 infix 수식을 postfix로 변환하며, 실제 계산순서를 결정하는 역할을 한다.
  • 내부적으로 Operation에 정의된 우선순위를 기반으로 계산순서를 결정한다.
  • Eval은 계산순서만 정할 뿐, 직접적인 계산이 필요하다면 Operation에 넘긴다. 

Operation

  • 연산자의 이름과 세부사항(필요한 피연산자의 개수, 우선순위, 실제 계산방법, ...)을 정의하는 역할을 한다.
  • 하나의 연산자와 여러개의 피연산자를 전달받아 실제 계산을 수행한다.

코드