본문 바로가기

오브젝트

(3)
동적인 협력, 정적인 코드 이번에도 오브젝트 부록을 정리했는데 마지막 부록이다. 이 책에서 계속 강조하는 협력에 대해서 종합적으로 정리한다. 책 전반적인 부분을 요약하는 내용이 있어서 복습도 되고 좋았다. 동적인 협력, 정적인 코드 객체는 동적임. 프로그램은 정적임. 객체는 시간에 따라 다른 객체와 협력하며 계속 변화함. 프로그램은 고정된 텍스트라는 형식 안에 갇혀 있으면서도 객체의 모든 변화 가능성을 담아야 함. 객체지향 프로그램을 위한 2가지 모델이 있음 하나는 실행 구조를 표현하는 동적모델, 다른 하나는 코드의 구조를 담는 정적 모델임. 동적 모델은 객체와 협력, 정적 모델은 타입과 관계로 구성됨. 책에서도 전반적으로 이야기했지만, 대부분의 사람들은 정적 모델을 중심으로 설계를 해나간다고 함. 하지만 동적모델이 더 중요하고 ..
계약에 의한 설계 오브젝트 책 부록 부분에 좋은 내용이 있어서 정리했다.인터페이스만으로는 객체의 행동에 관한 다양한 관점을 전달하기 어렵다는 것. 그래서 부수효과를 쉽고 명확하게 표현할 수 있는 커뮤니케이션 수단이 필요한데 그게 계약에 의한 설계임(Design By Contract)01. 협력과 계약부수효과를 명시적으로인터페이스를 통해서 메시지는 정의할 수 있지만, 객체 사이의 의사소통 방식은 정의할 수 없음. 시그니처를 통해 메시지 이름과 파라미터 목록은 전달하지만, 협력을 위해 필요한 약속과 제약은 인터페이스를 통해 전달할 수 없음.계약계약은 협력을 명확하게 정의하고 커뮤니케이션할 수 있는 범용적인 아이디어임. 객체 사이의 계약은 다음과 같음협력에 참여하는 각 객체는 계약으로부터 이익을 기대하고 이익을 얻기 위해 의무..
오브젝트. Chapter 01 객체,설계 이전에 오브젝트 책 읽은 거 복습하면서 정리를 하는데 1장 부분의 코드나 설명들이 책의 전반적인 내용이 담겨있어서 정리해 봤다. 개념보다는 실무가 더 중요하다. 유지보수와, 설계에 관한 한 지금까지는 그러하다. 그리고 소프트웨어 규모가 커지면 커질수록 소프트웨어 설계 분야에서 이론이 실무를 추월할 가능성은 희박해 보임. 아무튼 저자는 이 책에서 좀 더 '코드'에 대해서 더 다룰 거임 01. 티겟 판매 애플리케이션 구현하기 전체적인 첫 구조는 다음과 같음 예제 코드 따로 자바로 올려져 있어서 나는 파이썬으로 작성함. 필요하다면 나중에 자바로 적긴 할 거임. class Audience: def __init__(self, bag): self.bag = bag def getBag(self): return sel..