티스토리 뷰

@Entity
class User(
    var name: String,
) {
    fun updateName(name: String) {
        this.name = name
    }
}

- 생성자 안의 var property 로 name 생성

- setter 대신 함수를 만들어 update name

 

(var property) name setter가 public 으로 열려있지만, 함수를 이용하는 것이 클린하다.

 

이유?

1. 함수의 이름으로 명시적으로 사용 가능

2. 여러가지 property를 한번에 업데이트 가능

 

 

 

setter를 private하게 만드는 법

1. backing property (_name)

class User(
    private var _name: String
) {
    val name: String
        get() = this._name
}

setter 만 private하게 만들 수 있다.

 

2.  custom setter

class User(
    name: String
) {
    var name = name
        private set
}

 

 

코드 컨벤션

모든 setter를 private하게 만들어서 사용할 수 있지만, 번거로운 단점이 있다.

이럴 때 팀에서 코드 컨벤션을 정하여 setter를 public으로 열어두고 사용하지 않는 방법도 있다.

 

 

 

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함