본문 바로가기


객체

[OOP] 책임과 역할의 차이 그리고 타입의 구현 방법 객체지향 관련글을 보다가 책임과 역할의 개념이 나왔다. 책임은 객체가 해야할 행위를 나타내고 역할을 그 책임이 모여 가지게 되는 것이 역할인 것이다. 조형호 작가님의 객체지향의 사실과 오해에서 보면 증언을 해야할 책임을 가진 증인 여기서 증언해야할 책임있고 그것을 하는 주체인 증인이 역할이 된다. 여기서 궁금한게 생겼다. 이상한 나라의 앨리스에서 재판이 열리고 여기서 트럼프 왕이 재판장인 역할을 맡는다. 트럼프가 있고 트럼트왕이있다. 그러면 트럼는 슈퍼타입(Super Type) 트럼프왕은 서브타입(Sub Type) 이다. 그리고 트럼프왕은 '재판장' 이라는 역할을 가지고 있다. 개념적으로 이해는 가지만 결국 이걸 구현하려다 보니 궁금해졌다. 그럼 어떻게 구현하지? 타입과 역할의 차이는 뭐지 역할이 타입이..
[OOP] 객체, 추상화, 캡슐화 객체 객체와 일반적인 값이 구분되는 것은 식별자때문이다. 객체를 고유하게 만들어주는 식별자 그게 바로 객체이다 식별자는 ID나 이름 같은 하나의 값일수도 ID와 이름이 합쳐진 또 다른 타입의 값일 수도있다. 추상화(Abstraction) 추상화는 특성을 일반화하고 세부사항을 제거하여 단순하게 만드는 과정이다. 모든 지형들을 표시하기 보다는 필요에 따라 필요한 특성들을 골라냄을 통해 복잡한 지형을 단순하게 길을 찾기 위한 용도만으로 사용할 수 있다. 이를 객체에 적용하여 하나의 새로운 타입으로 만들어 낼 수 있다. 토끼, 강아지, 고양이 이라는 객체가 있다고 하자 이 객체들을 '동물' 이라는 개념으로 추상화할 수 있다. 추상화의 과정 공통점을 찾아 일반화한다. 숨을 쉰다. 스스로 움직일 수 있다. 토끼가 ..