본문 바로가기

스터디/오브젝트15

3장 - 협력, 책임, 역할 개요 이번 장에서는 객체지향 프로그래밍에서 핵심 개념인 협력, 책임, 역할에 대해 간단히 소개하고 왜 중요한지에 대해 다룹니다. 협력이란? 앱의 기능을 구현하기 위해 어떤 객체가 다른 객체에게 무엇인가를 요청하는 것을 협력이라 합니다. 객체지향에서는 한 객체는 어떤 것(기능 or 데이터)이 필요할 때 다른 객체에게 위임하거나 서로 협력하여 앱의 기능을 개발합니다. 왜 다른 객체에게 처리를 위임을 할까? 하나의 객체가 모든 요구사항이나 변경사항을 처리하게 되면, 다른 객체들과의 결합도가 높아져 유지보수가 어려워집니다. 따라서 다른 객체에게 처리를 위임함으로써 객체 간의 의존성이 낮아지며 유지보수가 용이해집니다. 협력이 설계를 위한 문맥을 결정한다. 객체는 상태와 행동을 함께 캡슐화하여 실행 단위를 구성합니.. 2023. 3. 12.
2장 - 협력, 객체, 클래스 개요 이번 장에서는 객체지향 프로그래밍에서 핵심 개념인 협력, 객체, 클래스에 대해 소개하고, 이를 고려한 프로그램 구조와 클래스 구현에 대해 다룹니다. 협력, 객체, 클래스 객체지향 프로그래밍을 시작할 때 가장 먼저 고민해야 하는 것은 무엇일까요? 대부분의 사람들은 클래스를 결정한 후에 클래스에 어떤 속성과 메서드가 필요한지 고민합니다. 하지만 저자는 이런 방법은 객체지향과는 거리가 멀다고 말하며, 진정한 객체지향의 전환은 클래스가 아닌 객체에 초점을 맞출 때에만 얻을 수 있다고 합니다. 어떻게 하면 객체에 초점을 맞출 수 있을까요? 다음 두 가지에 집중하면 됩니다. 첫째, 어떤 클래스가 필요한지를 고민하기 전에 어떤 객체들이 필요한지 고민해야 합니다. 클래스는 공통적인 상태와 행동을 공유하는 객체들을.. 2023. 3. 5.
1장 - 객체, 설계 개요 티켓 판매 애플리케이션을 구현 후 이 코드에 어떤 문제가 있으며 어떻게 해결하는지에 대해 소개합니다. 무엇이 문제일까? 어떤 문제점이 있는지 알려주기 위해 로버트 마틴이라는 사람이 말한 소프트웨어 모듈이 가져야 하는 세 가지 기능에 대하여 설명해 줍니다. 모듈이란? 크기와 상관없이 클래스나 패키지, 라이브러리와 같이 프로그램을 구성하는 임의의 요소를 의미합니다. 모든 소프트웨어 모듈에는 세 가지 목적이 있습니다. 첫 번째 목적은 실행 중에 제대로 동작하는 것 두 번째 목적은 변경을 위해 존재하는 것 → 대부분의 모듈은 생명주기 동안 변경되기 때문에 간단한 작업만으로도 변경이 가능해야 합니다. 세 번째 목적은 코드를 읽는 사람과 의사소통하는 것 → 모듈은 특별한 훈련 없이도 개발자가 쉽게 읽고 이해할.. 2023. 2. 26.