[우아한테크코스] 3월 9일 TIL

less than 1 minute read

오늘 배운 것

  1. 블랙잭 피드백 강의
  2. 모던 자바 인 액션 9장

블랙잭 피드백

  1. 자주 사용하는 인스턴스는 미리 생성
    • PlayingCard 인스턴스가 만들어지는 경우의 수는 몇 가지 일까?
    • 미리 생성하여 필요할 때마다 사용해 볼 수 있을까?
    • 위의 방식은 어떤 장점이 있을까?
  2. 객체 지향의 다형성 이용해 조건문 줄이기
    반복되는 조건문은 객체 지향의 다형성을 적용해 해결할 수 있다.
    게임 내 규칙을 객체로 추상화한다. (hit, stay, blackjack, burst의 경우를 객체로 추상화하는 것)
    현재 상태에서 다음 상태의 객체를 생성하는 역할을 현재 상태가 담당하도록 한다.

상태 패턴

  • 캡슐화란? 속성과 행위를 하나로 묶고 사용하지 못하도록 숨기는 것
    상태를 담당하는 객체를 추가 구헌해서 많은 조건문을 분리할 수 있다.

좋은 객체의 7가지 조건

  1. 객체는 생명체로 현실 세계에 존재해야 한다.
  2. 객체는 계약에 의해서 동작한다.
  3. 객체는 캡슐화에 의해서 고유하다.
  4. 객체는 불변이다.
  5. 객체의 클래스에 정적 멤버가 없다. 정적 메서드는 복제가 불가능하고 스레드 안전하지 못하다.
  6. 객체의 이름이 무슨 일을 하는지 말하면 안된다. '-er'을 지양하라는 말이다.
  7. 객체의 클래스가 Final이나 Abstract이다.