- 상태 : 시간에 따라 변화하는 값 (ex 변수)
- 접근 : 상태에 대한 접근. (public, private 등 접근을 제어 가능)
- 직접 접근 : 객체 내의 상태(변수) 에 직접 접근.
- 간접 접근 : 메소드를 통해서 상태(변수)에 접근. (2개 이상의 데이터 간의 의존 관계가 존재하는 경우)
- 공용 상태 : 클래스 내의 모든 인스턴스에 적용되는 상태가 존재할 경우 필드로 저장해서 공용으로 쓴다.
- 가변 상태 : 인스턴스 마다 다른 상태를 사용해야 할 경우 필드 저장이 아닌 맵으로 만든다.
- 외재 상태 : 이해한 바대로라면 지역변수에 가변 상태를 저장하는 경우를 외재 상태로 이해함.
- 변수 : 변수는 단순한 이름을 갖는게 좋음. (간단하면서도 이해하기 쉽게) 변수의 생명 기간은 변수의 범위에 가까워지도록 같은 범위에서 정의되는 변수들은 같은 생명기간을 갖도록
- 지역변수 : 변수가 선언된 지점이 속한 범위에서만 접근 가능 (특정 범위내에서만 사용하는 변수 ex 메소드 내)
- 필드 : 필드는 객체 전반에 사용되는 변수 (ex 클래스 변수)
- 파라미터 : 정적필드/필드 사용하지 않고 상태를 다른 객체에 전달시엔 '파라미터' 사용 (클래스간 의존성 감소)
- 수집 파라미터 : 결과를 모으는 로직을 짤 때, 메소드 파라미터를 전달해서 결과를 수집하는 편이 더 직관적.
- 옵션 파라미터 : 반드시 필요한 파라미터를 먼저 앞에서 전달, 옵션 파라미터는 그 뒤에 전달.
- 가변인자 : 파라미터가 가변적으로 들어올 경우 ... 을 통해 여러개의 파라미터가 들어올 수 있음을 표현. 옵션인자보다도 뒤에 위치.
- 파라미터 객체 : 여러개의 파라미터가 함께 여러 메소드로 전달된다면, 이 파라미터들을 묶어서 객체로 만드는게 낫다.
- 상수 : 프로그램의 여러 부분에서 변하지 않는 상태를 사용해야 할 때, 상수를 사용. static final로 선언. 상수를 메시지로 전달하는 방법보다는 해당 상수에 대한 각각의 메소드를 사용하는 편이 나음.
- 역할 제시형 작명 : 변수의 이름을 통해 변수의 역할을 전달. 생명기간이나 타입은 굳이 변수명에 쓸 필요는 없다.
- 선언 타입 : 변수명에 컬렉션 이름 arrayList 이런식으로 구체적인 이름을 넣지 말고, members 이런식으로 컬렉션이라는 적은 정보 정도만 전달한다. 그래야 추후 수정하기에도 용이하고 유연성이 늘어난다.
- 초기화 : 변수가 사용되기 전에 알고 있는 상태로 만드는 작업. 보통 선언과 동시에 해주는게 좋음.
- 열성적 초기화 : 선언과 동시에 초기화 하는것. (일반적)
- 게으른 초기화 : 초기화 비용이 상당하고, 비용부담을 가급적 늦추고 싶을 때에는 해당 상태(변수)를 취득하는 메소드를 만들고 그 메소드가 호출될 때, 초기화 한다.
'책(독서)' 카테고리의 다른 글
[켄트벡의 구현패턴] ~ 195p 발전하는 프레임워크 (0) | 2020.09.21 |
---|---|
[켄트벡의 구현패턴] ~175p 9. 컬렉션 (0) | 2020.09.17 |
[켄트벡의 구현패턴] ~154p 메소드 (0) | 2020.09.16 |
[켄트벡의 구현패턴] ~121p 행위 (0) | 2020.09.15 |
[켄트벡의 구현패턴] ~80p (0) | 2020.09.04 |