[TIL] 26/10/2 - 대상 객체 분리

맹돌이·5일 전

TIL

목록 보기
11/13

어떤 클래스마다 일단 정확한 역할을 지정해주어야한다.
가령 커머스 과제의 Product의 역할을 정할 때
상품의 정보를 저장한다? => 상품 정보를 저장하는 클래스는 아니다
상품에 대한 정보를 지닌다?
=> 상품 데이터를 표현해주는 역할
하지만 이러한 역할들은 추후 개발 과정을 통해 달라질 수 있다

어떤 요구사항이 들어오게되면 알아서 어떤 객체가 필요하고 어떤 역할을 수행할지 생각해서 추가해야한다.
Category객체가 필요하다?
역할부터 생각해보자. 물품의 종류를 표현해주는 역할

클래스마다 역할을 적다보면, 여러가지 역할이 섞여서 사용되는 걸 알 수 있다

코드를 작성하기 전에 주석을 먼저 작성하는 것이 무조건 좋다.
코드 젤 위에는 해당 클래스의 역할을 작성해주고, 속성 생성자 기능도 주석을 작성.
기능을 작성할 때 작동 순서에 맞게 숫자를 작성해주는 것이 중요하다.

속성을 인자로 받아보는 것과 속성을 만들지않고 메인문에서 인자로 받아오는 것은 차이가 존재한다.
가령 고양이의 속성중에는 eye,legs 등이 존재할건데, run이라는 메서드가 있다
이때 인자를 eye로 받는것은 어색하지않나? => 이런 흐름으로 생각해보는 것이 좋다
이야기가 어떤식으로 매끄러워질 수 있는가

스캐너의 위치가 메서드 안에 있는 것이 왜 이상했냐? 이거 예전에 궁금했던 내용
-> 위 예시처럼 고양이가 달리면서 눈을 만드는 것은 어색하다
-> 즉, start 메서드의 역할을 생각해보면 쉽다, 시작하는데 스캐너를 만들고있으니까 이는 어색한 상황이다.
-> 내 코드에서도 start에서 스캐너 객체를 생성했는데 이를 수정할 필요가 있다

코드가 엄청 길어졌어 그럼 패턴 추출 과정을 해보자
추상화/캡슐화/상속/다형성
가령 현재 내 메인문에서도 데이터베이스에 들어갈 정보를 호출해주는 부분이 있는데 이 부분도 데이터를 다루는부분과 그렇지않은 부분(커머스시스템 start()호출)로 나눠서 클래스를 분리해주는 것이 좋다

결과적으로 중요한 것은 인터페이스를 분리하고 코드를 작성하는 것이기도 하지만
내가 어떤 코드를 보고 설계를 어떻게 해야될지
AI가 작성해주는 코드가 실무에서 쓸 수 있을만큼 유지보수가 쉬운지
잘 체크해보는 것이 중요하다

0개의 댓글