반응형
원시 타입의 값을 객체로 포장하면 무엇이 좋을까?
- 위에는 원시 타입이 있고 밑에는 원시 타입의 변수를 객체로 포장했다.
객체 지향 프로그래밍이란?
객체 지향 프로그래밍 (Object-Oriented Programming, OOP)은 프로그래밍에서 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체로 만들고, 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다.
참조
객체 중심의 프로그래밍인 만큼 자신의 상태를 객체 스스로 관리할 수 있어야 한다.
재고의 이름과 재고의 수량을 가지고 있는 Product Class가 있다고 하자
Product 클래스에서 재고의 이름과, 재고의 수량을 관리하고 있다.
여기서 만약 재고의 가격과, 재고의 종류, 재고의 무개등 정보가 추가 되었다고 가정해보자
멤버변수가 늘어난 만큼 Product Class에서 해야되는일이 늘어나는것을 볼 수 있다.
원시 타입을 포장한다면?
예외처리는 원시타입을 포장한 Name, Price 클래스에서 하고 Product Class는 더이상 예외처리를 하지 않을 수 있다.!!!!
- 재품의 이름과 재품의 가격의 상태에 대해서 더이상 Product Class에서 예외처리를 하지 않는다.
- Product에서는 기능이 커지면 객체에게 위임하는 식으로 데이터를 처리해줄 수 있고 각각의 객체에서 책임을 지면서 프로그래밍 할 수 있어졌다.
진짜 이런게.. 객체지향 프로그래밍이 아닐까..? 지금까지 내가 절차지향 프로그래밍을 한게 아닌지 돌아보는 시간을 가졌다.
심지어 자료형에 더이상 구애받지 않을 수 있고 유지, 보수에 유용하다.
- 생성자 오버로딩을 활용할 수 있고 최소한의 확장성 또한 가져갈 수 있는거 같다.
원시 타입을 포장하면서 코드의 유지, 보수도 가져가면서 변수가 의미하는 바를 명확하게 명확하게 책임질 수 있어졌다.
- 이번 2주차 우테코 과제를 통해서 자동차라는 객체에 이름과 움직인 횟수를 가지는 원시 타입을 포장하면서 객체가 명확하게 책임을 지면 더이상 신경쓰지 않고 기능을 확장할 수 있음을 경험을 하면서 객체지향 프로그래밍에 이제 한발 다가간거 같다.
참조
반응형
'개발' 카테고리의 다른 글
매직넘버, 리터럴 어디까지 상수 처리해야 돼? (4) | 2023.11.06 |
---|---|
1주 차 피드백을 2주 차 과제에 적용하기까지 (0) | 2023.11.01 |
Junit으로 Scanner, System.out.println() 테스트하기 (0) | 2023.10.25 |
Spring에서 Redis Geofencing기능 활용하기 (0) | 2023.10.06 |
spring Schedule + Event를 이용해서 redis Key값 넣어주기 (2) | 2023.10.06 |