객체지향 사실과 오해 - 책임과 메시지
·
OOP
참고 : 객체지향 사실과 오해 (조영호 지음 - 위키북스) DDD를 공부하면서 DDD 내용을 정리하는 글을 작성하고 싶었으나 예제 코드를 만드는 작업이 제대로 진행되지 않았다... 그래서 쓰던 글을 멈추고 다른 글을 작성하기로 했는데, 이왕이면 쓰던 글과 관련이 있는 주제로 쓰기로 했다. 해당 글에 나오는 키워드는 객체지향의 개념을 이해하는데 있어서 빠질 수 없는 키워드들이다. 또한 이 키워드들은 단순하게 객체지향 이론에 대한 내용에 국한되어 언급되는 키워드들이 아니다. 다양한 카테고리의 책에서 봤던 키워드이기에 더 확실하게 개념을 잡을 필요성을 느껴 해당 책의 내용을 정리하기로 했다. 이 글의 내용 또한 예제코드가 있으면 좋았겠지만 없어도 내용을 이해하는데 문제는 없을거라 생각해서 해당 글은 책의 내용..
객체지향의 사실과 오해-Chapter 6,7
·
OOP
참고 : 객체지향의 사실과 오해 - 조영호 지음, 위키북스 요즘 DDD (Domain Driven Design) 에 대해 공부하기 시작했습니다. DDD에 대해 공부하고 정리를 하는 것이 목표 였으나... 현재의 상태는 비슷한 내용을 어디서 봤던 것 같은데...? 아 이 내용은 전에 공부했었던 책 그 부분을 다시 한번 보면 좋겠다. 이러한 생각이 들고 있습니다. DDD 공부를 위해 책을 폈지만 DDD 에 대하여 배운다기 보다는 전에 다른 책을 통해 공부 했었던 내용이 조금씩 떠오르고 있습니다.(아직 책의 앞부분을 읽고 있어서 이런 일을 겪고 있는 것 일수도 있습니다.) 머릿속에 흩어져 있던 개념들이 이제 와서야 조금씩 정리가 되고 있는 느낌을 받고 있습니다. 그래서 DDD 에 대한 내용을 정리하기에 앞서 ..
옵저버 패턴
·
OOP
Observer Pattern 옵저버 패턴이란? 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다 의존성을 정의해요. 일대다 관계는 주제(Subject) 와 옵저버(Observer) 에 의해 정의돼요. 옵저버는 주제에 의존하고 주제의 상태가 바뀌면 옵저버한테 연락이 가고 연락방법에 따라 옵저버에 있는 값이 새로운 값으로 갱신될 수도 있어요. 클래스 다이어그램 Subject 인터페이스는 객체에서 옵저버로 등록하거나 옵저버 목록에서 탈퇴하고 싶을 때는 이 인터페이스에 있는 메소드를 사용하죠 옵저버가 될 가능성이 있는 객체에서는 반드시 Observer 인터페이스를 구현해야 해요. 이 인터페이스에는 주제의 상태가 바뀌었을 때 호출되는 update(..
객체지향 특성 - 다형성
·
OOP
객체지향 특성 중에 다형성에 대해 알아볼게요! 객체지향 4대 특성 중에 다형성에 대해 알아볼게요! 스프링 입문을 위한 자바 객체 지향의 원리와 이해- 김종민 지음 을 참고했습니다! 객체 지향의 4대 특성은 캡슐화, 상속, 추상화, 다형성 이 있어요. 캡! 상추다! 라고 외우면 잘 외워지니까 반드시 외우도록 해요. 다형성 : 사용편의성 객체지향에서 다형성은?? 오버라이딩과 오버로딩이 대표적인 예 라고 할 수 있어요. 오버라이딩 : 같은 메서드 이름, 같은 인자 목록으로 상위 클래스의 메서드를 재정의 오버로딩 : 같은 메서드 이름, 다른 인자 목록으로 다수의 메서드를 중복 정의 다형성은 코드를 보면서 이해하시는게 빠를거에요. {% codeblock %} class Animal { public String n..
객체지향 특성 - 상속
·
OOP
객체지향 특성 중에 상속에 대해 알아볼게요! 객체지향 4대 특성 중에 상속 대해 알아볼게요! 스프링 입문을 위한 자바 객체 지향의 원리와 이해- 김종민 지음 을 참고했습니다! 객체 지향의 4대 특성은 캡슐화, 상속, 추상화, 다형성 이 있어요. 캡! 상추다! 라고 외우면 잘 외워지니까 반드시 외우도록 해요. 상속 : 재사용 + 확장 객체지향의 상속에 대해 설명할 때 일반적으로 나오는 예 입니다. 계층도/조직도 라고 말을 하는데 이 그림 보다 아래의 그림이 객체지향의 상속을 더 잘 표현한 예라고 생각해요. 아래 그림은 상속 관계가 아니예요. 동물은 포유류의 부모가 아니고 고래의 부모가 포유류가 되는 것도 아니지요. 동물이라고 하는 것 중 분류를 세분화해서 포유류와 조류가 나오고 더 분류해서 고래, 박쥐가 ..
객체지향 특성 - 캡슐화
·
OOP
객체지향 특성 중에 캡슐화에 대해 알아볼게요! 객체지향 4대 특성 중에 캡슐화에 대해 알아볼게요! 스프링 입문을 위한 자바 객체 지향의 원리와 이해- 김종민 지음 을 참고했습니다! 객체 지향의 4대 특성은 캡슐화, 상속, 추상화, 다형성 이 있어요. 캡! 상추다! 라고 외우면 잘 외워지니까 반드시 외우도록 해요. 캡슐화 : 정보은닉 자바에서 정보은닉이라 하면 접근제어자(private, default, protected, public)가 생각날거에요. 접근제어자의 범위 먼저 봅시다. 접근제어자 설명 public 모두가 접근 가능 protected 상속 / 같은 패키지 내의 클래스에서 접근 가능 default 같은 패키지 내의 클래스에서 접근 가능 private 본인만 접근 가능 접근제어자를 통해 외부에서 ..
추상화
·
OOP
객체지향 4대 특성 중에 추상화 대해 알아볼게요! 스프링 입문을 위한 자바 객체 지향의 원리와 이해- 김종민 지음 을 참고했습니다! 객체 지향의 4대 특성은 캡슐화, 상속, 추상화, 다형성 이 있어요. 캡! 상추다! 라고 외우면 잘 외워지니까 반드시 외우도록 해요. 우선 4대 특성 중에 추상화를 설명하기 전에 클래스와 객체의 관계 먼저 알아봐요. 클래스와 객체 일반적으로 자바 클래스를 설명할 때 붕어빵 틀과 붕어빵으로 비유를 많이 하곤 해요. 그런데...? 클래스 객체명 = new 클래스(); 붕어빵틀 붕어빵 = new 붕어빵틀(); ??? 새로운 붕어빵틀을 만들었더니 붕어빵이 되었다라...? 뭔가 어색함이 느껴지네요. 다른 예제를 더 봐보죠. 사람은 클래스인가? 객체인가? JDragon 은 클래스인가?..