Object Oriented
[OOP] 원시 타입을 포장하라
[OOP] 원시 타입을 포장하라
2023.03.15원시 타입 원시 타입(Primitive Type)은 알다시피 실제 데이터 값을 저장하는 타입으로 평소 많이 사용하는 형태이다. 원시 타입에는 보통 boolean, char, int, double 등 여러가지가 있다. 원시 타입을 포장하라? 원시 타입의 값을 객체로 포장하면 객체지향적으로 얻을 수 있는 이점들이 많다. 그럼 한 번 무엇이 있는지 살펴보자. 자신의 상태를 객체 스스로 관리할 수 있다 Wallet이라는 클래스에서, 사용자의 돈(cash)을 가지고 있다고 가정해보자. public class Wallet { private int cash; public Wallet(int money) { this.cash = cash; } } 위 형태처럼 원시 타입인 int로 돈을 가지고 있으면 어떨까? 일단 다음..
[OOP] 상속보다는 조합을 사용하자
[OOP] 상속보다는 조합을 사용하자
2023.03.15상속을 왜 사용하는가? 먼저 제목 내용을 살펴보기 전에 상속을 왜 사용하는지에 대해 생각해 볼 필요가 있다. 우리는 상속을 왜 사용하는가? 먼저 대부분의 이유는 다음과 크게 다르지 않다고 생각한다. 코드를 재사용하여 중복을 줄인다 변화에 대해 유연해지고 확장성이 증가한다. 개발 시간이 줄어든다. 하지만 위 내용은 상속을 적절히 사용했을 경우에만 해당한다. 상속을 잘못 사용하게되면 변화에 유연하지 않고 에러를 내기 쉽다. 상속의 단점 상속은 상위 클래스의 구현이 하위 클래스에 노출되기 때문에 캡슐화를 깨트린다. 캡슐화가 깨짐으로써 하위 클래스가 상위 클래스에 강하게 결합, 의존하게되고 강한 결합과 의존은 변화에 유연하게 대처하기 어려워진다. 예제를 통해서 살펴보자. 다음 예제는 로또 번호와 당첨 번호를 가..