728x90

객체지향 2

객체지향 체조

내가 부트캠프를 하던 시절 과제로 코드를 작성하는데 몇 가지 조건을 제한해둔 과제를 받은 적이 있다. 제한해둔 조건은 대략적으로 아래와 같았다. (기억이라 틀릴 수 있음) 1. 절대로 인덴트 depth 가 3 이상이 되지 않도록 하시오. 2. 중복코드를 최대한 없도록 하시오. 3. 하나의 함수가 80줄을 넘지 않도록 하시오. 그 당시에는 "이것이 가능한가?" 라는 물음이 있었다. 근데 또 하다보니 어찌어찌 되긴됬다. 근데 이 중 for 문 부분에서 3뎁스에 도달해서 떨어질꺼란 생각을 했던 기억이 난다. 여튼 그 당시에는 잘 몰랐지만, 이 내용이 객체지향 체조에 들어있던 내용이였다. 그래서 오늘은 객체지향 체조를 정리해보려고 한다. 객체지향 체조 1. 메소드 당 indent depth 는 하나로 제한한다...

Java 2021.11.28

객체지향) 객체의 역할, 책임, 협력

대부분의 책에서 객체지향은 역할, 책임, 협력이 중요하다고 한다. 도대체 역할, 책임, 협력은 정확히 객체세계에서 어떤 부분을 이루고 있을까? 한번 알아보자. 협력 객체지향 시스템은 자율적인 객체들이 공동체를 이루고 있는 것을 말한다. 객체지향 세계에서 협력이란 기능을 구현할 수 있는 유일한 방법이다. 두 객체사이의 협력은 하나의 객체가 다른 객체에게 도움을 요청할 때 사용한다. 백문이 불여일타라고 코드로 한번 보는 것이 빠를 것 이다. Lotto Class 는 자신의 IntArray 를 랜덤 숫자로 채우기 위해서 randomLottoNumberGenerator 에 협력을 요청하고 있다. 그림으로 그리면 아래와 같을 것이다. Lotto Class 는 LottoNumeberGenerator 의 genera..

Java 2021.11.24
728x90