영화 예매 시스템 영화는 영화에 대한 기본 정보를 의미한다. - 제목, 상영시간, 할인정책, 할인조건 상영은 관람객이 영화를 관람하는 정보를 의미한다. (실제 관람객이 예매하는 대상) 할인 조건에 따른 할인 정책이 존재한다. 할인 조건 순서 조건 상영 순번을 이용해 할인 여부를 결정. 기간 조건 상영 시작시간이 특정 기간인 경우 할인 여부 결정. 할인 정책 금액 할인 정책 예매 금액에서 일정 금액을 할인해 주는 방식. 비율 할인 정책 예매 금액에서 일정 비율의 금액을 할인해 주는 방식. 객체 지향 설계의 초점 클래스를 고민하기전에 어떤 객체가 필요한지부터 고민하라. (도메인 결정을 먼저하라는 의미인듯?) 객체를 독립적인 존재가 아닌 협력하는 공동체의 일원으로 생각하라. (각 객체는 자율적인 존재) 영화 ..
코틀린(Kotlin) | 추상 클래스 추상 클래스는 하나 이상의 추상 메서드(구현체가 없는 메서드)를 가진다. 추상 클래스는 객체를 생성할 수 없다. 추상 클래스를 상속하여 모든 추상 메서드를 구현하여야만 객체를 생성 할 수 있다. 코틀린에서 추상 클래스란 abstract클래스 내부에 abstract멤버를 하나 이상 가진 클래스를 의미한다. open키워드를 따로 추가하지 않아도 된다. abstract class Animal { abstract fun bark() fun eat() { println("animal is eating") } } class Dog : Animal() { override fun bark() { println("bow wow") } } fun main() { val animal =..