영화 예매 시스템 영화는 영화에 대한 기본 정보를 의미한다. - 제목, 상영시간, 할인정책, 할인조건 상영은 관람객이 영화를 관람하는 정보를 의미한다. (실제 관람객이 예매하는 대상) 할인 조건에 따른 할인 정책이 존재한다. 할인 조건 순서 조건 상영 순번을 이용해 할인 여부를 결정. 기간 조건 상영 시작시간이 특정 기간인 경우 할인 여부 결정. 할인 정책 금액 할인 정책 예매 금액에서 일정 금액을 할인해 주는 방식. 비율 할인 정책 예매 금액에서 일정 비율의 금액을 할인해 주는 방식. 객체 지향 설계의 초점 클래스를 고민하기전에 어떤 객체가 필요한지부터 고민하라. (도메인 결정을 먼저하라는 의미인듯?) 객체를 독립적인 존재가 아닌 협력하는 공동체의 일원으로 생각하라. (각 객체는 자율적인 존재) 영화 ..
Prototype? 의미 prototype: 원형, 견본 어떠한 객체가 만들어지기 위해 그 객체의 모태가 되는 오브젝트를 의미한다. 모든 함수 객체의 생성자는 prototype 프로퍼티를 가지고 있다. 객체 생성 함수는 생성자로 대응되며 각 객체에서 공유되어 사용할 프로퍼티 및 함수는 prototype 객체에 넣어서 사용한다. 객체 생성시 new키워드를 사용하여 생성한다. // 생성자 함수 function Person (name) { // 이름을 객체에 초기화한다. this.name = name; } // 객 객체에서 공유될 함수인 getName()을 prototype에 정의한다. Person.prototype.getName = function () { return this.name; } const pe..
코틀린의 모든 class는 공통 상위 클래스인 Any를 상속받는다. (타입 시스템 참고) 클래스 내부가 비어있다면 중괄호를 생략해도 무방하다. class Example 자바와 달리 코틀린에서는 클래스와 메서드가 기본적으로 final로 선언된다. 상속 및 오버라이딩을 하기 위해서는 open키워드를 사용해야 한다. 상속 시 자바에서는 extends를 사용하지만 코틀린에서는 :(콜론)을 사용하여 상속한다. open class Parent() { } // extends Parent class Child() : Parent() { } 부모의 생성자는 반드시 초기화해야 한다. 클래스가 주요 생성자를 가진다면 주요 생성자의 파라미터로 부모를 초기화시킬 수 있다. open class Parent(val age: Int..