본문 바로가기

분류 전체보기66

[오브젝트] 3장. 역할, 책임, 협력 객체 지향에서 가장 중요한 것은 역할, 책임, 협력이다. 협력 : 객체들이 애플리케이션의 기능을 구현하기 위해 수행하는 상호작용 - 어떤 객체가 다른 객체에게 무언가를 요청하는 것 - 객체의 행동을 결정 - 메시지 전송 -> 메서드 실행 책임 : 객체가 협력에 참여하기 위해 수행하는 로직 - 객체지향 설계는 협력에 필요한 메시지를 찾고 메시지에 적절한 객체를 선택하는 반복적인 과정을 통해 이뤄진다. 그리고 이런 메시지가 메시지를 수신할 객체의 책임을 결정한다. - 객체가 충분히 추상적이면서 미니멀리즘을 따르는 인터페이스를 가지게 하고 싶다면 메시지가 객체를 선택하게 하라. - 중요한 것은 객체의 상태가 아니다. 행동이다. 행동이 중요하다. 객체가 가질 수 있는 상태는 행동을 결정하고 나서야 비로소 결정할.. 2022. 2. 27.
[오브젝트] 1장. 객체 설계 - 객체는 자신의 데이터를 스스로 처리하는 자율적인 존재여야 한다. 외부의 간섭을 최대한 배제하고 메시지를 통해서만 협력하는 자율적인 객체들의 공동체를 만드는 것이 훌륭한 객체 지향 설계를 얻을 수 있는 지름길이다. 절차지향과 객체지향 - 절차지향 : 모든 처리가 하나의 클래스 안에 위치하고 나머지 클래스는 단지 데이터의 역할만 수행. 절차적 프로그래밍의 세상은 우리의 예상을 너무나도 쉽게 벗어나기 때문에 코드를 읽는 사람과 원활하게 의사소통하지 못한다. 또한 데이터의 변경으로 인한 영향을 지역적으로 고립시키기 어려워 변경은 버그를 부르고 버그에 대한 두려움은 코드를 변경하기 어렵게 만든다. - 객체지향 : 데이터와 프로세스가 동일한 모듈 내부에 위치하도록 프로그래밍하는 방식. 의존성은 적절히 통제되고 .. 2022. 2. 19.
[백준] # 2589. 보물섬 (파이썬) 문제 링크 https://www.acmicpc.net/problem/2589 2589번: 보물섬 보물섬 지도를 발견한 후크 선장은 보물을 찾아나섰다. 보물섬 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 각 칸은 육지(L)나 바다(W)로 표시되어 있다. 이 지도에서 www.acmicpc.net 문제 내용 보물섬 지도를 발견한 후크 선장은 보물을 찾아 나섰다. 보물섬 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어 있다. 각 칸은 육지(L)나 바다(W)로 표시되어 있다. 이 지도에서 이동은 상하좌우로 이웃한 육지로만 가능하며, 한 칸 이동하는 데 한 시간이 걸린다. 보물은 서로 간에 최단 거리로 이동하는데 있어 가장 긴 시간이 걸리는 육지 두 곳에 나뉘어 묻혀있다. .. 2022. 2. 1.
[백준] # 2210. 숫자판 점프 (파이썬) 문제 링크 https://www.acmicpc.net/problem/2210 2210번: 숫자판 점프 111111, 111112, 111121, 111211, 111212, 112111, 112121, 121111, 121112, 121211, 121212, 211111, 211121, 212111, 212121 이 가능한 경우들이다. www.acmicpc.net 문제 내용 5×5 크기의 숫자판이 있다. 각각의 칸에는 숫자(digit, 0부터 9까지)가 적혀 있다. 이 숫자판의 임의의 위치에서 시작해서, 인접해 있는 네 방향으로 다섯 번 이동하면서, 각 칸에 적혀있는 숫자를 차례로 붙이면 6자리의 수가 된다. 이동을 할 때에는 한 번 거쳤던 칸을 다시 거쳐도 되며, 0으로 시작하는 000123과 같은 수.. 2022. 2. 1.