본문 바로가기

OOP

(5)
동적인 협력, 정적인 코드 이번에도 오브젝트 부록을 정리했는데 마지막 부록이다. 이 책에서 계속 강조하는 협력에 대해서 종합적으로 정리한다. 책 전반적인 부분을 요약하는 내용이 있어서 복습도 되고 좋았다. 동적인 협력, 정적인 코드 객체는 동적임. 프로그램은 정적임. 객체는 시간에 따라 다른 객체와 협력하며 계속 변화함. 프로그램은 고정된 텍스트라는 형식 안에 갇혀 있으면서도 객체의 모든 변화 가능성을 담아야 함. 객체지향 프로그램을 위한 2가지 모델이 있음 하나는 실행 구조를 표현하는 동적모델, 다른 하나는 코드의 구조를 담는 정적 모델임. 동적 모델은 객체와 협력, 정적 모델은 타입과 관계로 구성됨. 책에서도 전반적으로 이야기했지만, 대부분의 사람들은 정적 모델을 중심으로 설계를 해나간다고 함. 하지만 동적모델이 더 중요하고 ..
계약에 의한 설계 오브젝트 책 부록 부분에 좋은 내용이 있어서 정리했다.인터페이스만으로는 객체의 행동에 관한 다양한 관점을 전달하기 어렵다는 것. 그래서 부수효과를 쉽고 명확하게 표현할 수 있는 커뮤니케이션 수단이 필요한데 그게 계약에 의한 설계임(Design By Contract)01. 협력과 계약부수효과를 명시적으로인터페이스를 통해서 메시지는 정의할 수 있지만, 객체 사이의 의사소통 방식은 정의할 수 없음. 시그니처를 통해 메시지 이름과 파라미터 목록은 전달하지만, 협력을 위해 필요한 약속과 제약은 인터페이스를 통해 전달할 수 없음.계약계약은 협력을 명확하게 정의하고 커뮤니케이션할 수 있는 범용적인 아이디어임. 객체 사이의 계약은 다음과 같음협력에 참여하는 각 객체는 계약으로부터 이익을 기대하고 이익을 얻기 위해 의무..
오브젝트. Chapter 01 객체,설계 이전에 오브젝트 책 읽은 거 복습하면서 정리를 하는데 1장 부분의 코드나 설명들이 책의 전반적인 내용이 담겨있어서 정리해 봤다. 개념보다는 실무가 더 중요하다. 유지보수와, 설계에 관한 한 지금까지는 그러하다. 그리고 소프트웨어 규모가 커지면 커질수록 소프트웨어 설계 분야에서 이론이 실무를 추월할 가능성은 희박해 보임. 아무튼 저자는 이 책에서 좀 더 '코드'에 대해서 더 다룰 거임 01. 티겟 판매 애플리케이션 구현하기 전체적인 첫 구조는 다음과 같음 예제 코드 따로 자바로 올려져 있어서 나는 파이썬으로 작성함. 필요하다면 나중에 자바로 적긴 할 거임. class Audience: def __init__(self, bag): self.bag = bag def getBag(self): return sel..
객체지향의 사실과 오해 3~4장 3장은 추상화와 타입에 대해 설명하고 객체와의 관계에 대해서 이야기한다. 4장은 앞서 이야기한 것들을 바탕으로 역할, 책임, 협력이 구체적으로 어떻게 이뤄지는지 그리고 우리가 객체지향 프로그램을 설계할 때 어떤 식으로 접근해야 하는지 좀 더 구체적으로 이야기해준다. 3장에서 먼저 복잡성을 다루기 위해 추상화가 이뤄지는 두 단계를 설명한다. 첫 번째 차원은 구체적인 사물들 간의 공통점은 취하고 차이점은 버리는 일반화를 통해 단순하게 만드는 것이다. 두 번째 차원은 중요한 부분을 강조하기 위해 불필요한 세부 사항을 제거함으로써 단순하게 만드는 것이다. page 77 객체지향 패러다임은 객체라는 추상화를 통해 현실의 복잡성을 극복하고 위의 두 차원을 올바르게 이해하고 적용하는 것이라고 한다. 위에서 말한 첫 ..
객체지향의 사실과 오해 1장~2장 이 책은 혼자 읽은 책은 아니고 저번 주부터 정글에서 같이 공부했던 친구들 몇 명과 북 스터디에서 진행하기로 한 책이다. 객체지향적으로 코드를 짜는 방법론이나 이런 게 구체적으로 나와있는 책이 아니라 제목에 있는 것처럼 잘못된 오개념('프로그래머의 뇌'란 책에서 말한 그런 오개념)? 들 그리고 편견들에 대해 다시 잡으면서 올바르게 객체지향 관점으로 사고할 수 있게 도움을 줄 수 있는 책이 될 거 같다. 이번 주는 1장 ~ 2장 을 읽었는데 단순한 요약보다는 내가 읽으면서 흥미롭게 느끼거나 기억에 남았던 점들을 정리하려 한다. 우선 본격적으로 1장에 들어가기전에 저자는 보통 우리가 객체 지향하면 클래스부터 떠올리고 그거에 관련해서만 생각하고 이야기하는 점들을 경계한다. 2장 마지막을 읽게 되면 한번 더 이..