OOP

· JVM/Java
거짓 중복 발생 사례 상품의 정가를 나타내는 Regular Price 를 정의해봅시다. public class RegularPrice { private static final int MIN_AMOUNT = 0; private final int value; RegularPrice(final int amount) { if (amount < MIN_AMOUNT) throw new IllegalArgumentException("가격은 0원 이상이어야 합니다."); this.value = amount; } } 일반 할인, 여름 할인을 책임지는 클래스를 정의해봅시다. @Getter public class RegularDiscountedPrice { private static final int MIN_AMOUNT =..
· JVM/Kotlin
Abstract class 와 Interface 는 왜 필요한가? 프로그래밍에서 추상화라는 단어를 듣는다. "무엇을 할것인지"는 노출하고 "어떻게 동작하는지"는 숨기는 것이다. Abstract class와 Interface 는 추상화를 돕는 녀석들이다. 추상화가 필요할 때, 둘중 어느 것을 사용해야할지 차이점을 중심으로 정리해보자. Abstract Class 목적 abstract method, field 를 가질 수 있고 구현부도 가질 수 있다. 특징 변수의 경우 초기화 되지 않는다. 메소드의 경우도 {} body 부분을 갖지 않는다. abstract class간에도 상속 가능하다. Interface 상속받을 서브 클래스에게 구현할 메소드와 변수의 원형(signature)을 알려주어 클래스별 공통 분모만..
M_Falcon
'OOP' 태그의 글 목록