좋은 객체의 7가지 덕목 요약

Jae-Baek Song·2023년 3월 12일
0

객체가 고유하다

캡슐화(Encapsulation)란 데이터와 그 데이터를 다루는 메서드를 하나의 단위로 묶는 것을 의미합니다.

정적(static) 메서드만이 담긴 유틸리티 클래스는 좋은 객체를 인스턴스화할 수 없다. 좀 더 일반적으로 말하자면 유틸리티 클래스는 이번 글에서 언급한 이점을 아무것도 갖지 않으며 “클래스”라고 부를 수조차 없다.

객체가 불변적이다

스레드 안전성

이는 여러 스레드가 다른 스레드와 충돌하지 않고 동시에 동일한 개체에 액세스할 수 있음을 의미합니다.

시간적 결합 피하기

두 번째 요청이 발생하기 전에 첫 번째 요청을 구성해야 하는경우 불변 객체가 아닐때 충돌이 발생할수 있다.

https://www.yegor256.com/2014/06/09/objects-should-be-immutable.html

객체의 이름이 직명을 나타내지 않는다

객체의 이름은 이 객체가 무엇인지 말해야 하고 무슨 일을 하는지 말해서는 안 된다. 이것은 마치 현실 세계의 객체에 이름을 부여하는 것과 마찬가지인데, ‘페이지 모음기’ 대신 ‘책’을, ‘물 보관기’ 대신 ‘컵’을, ‘몸 감싸개’ 대신 ‘티셔츠’라고 이름을 붙이는 것과 같다.

일반적으로, “-er”로 끝나는 이름은 피하라. 그것들 중 대부분은 좋지 않다.

객체의 클래스가 Final이나 Abstract다

final 키워드를 사용하지 않는다면 누군가(여러분 자신을 포함해서)가 클래스를 확장한 다음… 범죄 행위를 저지를 것이다 🙁 그러니 final을 사용하지 않는 클래스는 나쁜 설계다.

https://codingnuri.com/seven-virtues-of-good-object/

1개의 댓글

comment-user-thumbnail
2023년 3월 24일

이 포스팅은 왜 이렇게 짧나요?

답글 달기

관련 채용 정보