본문 바로가기

state

[스테이트패턴] 스테이트패턴 적용기 안녕하세요 남갯입니다. 오늘은 디자인 패턴을 공부하던 중 스테이트 패턴을 통해 코드를 개선한 내용을 정리해보려고 합니다. 스테이트 패턴이란 스테이트패턴의 정의 스테이트 패턴을 이용하면 객체의 내부상태가 바뀜에 따라서 객체의 행동을 바꿀수 있습니다. 마치 객체의 클래스를 바뀌는것과 같은 결과를 얻을수있습니다.* 상태를 별도의 클래스로 캡슐화하고 현재상태를 나타내는 객체한테 행동을 위임하기 때문에 내부상태가 바뀜에 따라 행동이 달라지는것을 알 수 있습니다. 스테이트 패턴의 정의에 따라 현재 객체의 내부 상태가 바뀜에 따라서 객체의 행동을 바꿀수 있다고 합니다. 요구사항 제가 필요했던 요구사항에서는 자동차는 도로를 따라 일정 속도와 1. 정체, 지연, 원할 세가지의 도로의 타입이 존재합니다.원할 - 지연 - ..
[디자인패턴] 스테이트 패턴 (State) 안녕하세요 남갯입니다 오늘은 스테이트 패턴에 대해 포스팅 해보려고 합니다. 사건의 발단 뽑기회사에서 뽑기 프로그램을 만들게 되었습니다. 총 상태는 아래와같이 4가지가 있고,동전없을때 동전을 넣으면 동전있음으로 바뀌고, 이것이 상태의 전환입니다. 즉 상태는 4개이고 1.동전 있음2.동전 없음.3.알맹이 판매.4.알맹이 매진. 행동도 4개가 되는거죠1. 동전 투입2. 동전 반환3. 손잡이 돌림4. 알맹이 내보냄 이제 상태 기계 역할을 하는 클래스를 만들어보겠습니다.fun insertQuarter(){ if(state == HAS_QUARTER){ println("동전은 한개만 넣어주세요") }else if(state == SOLD_OUT){ println("매진되었습니다. 다음 기회에 이용해주세요.") }e..