학습 내용
- 일반화, 추상화 : 일반화는 여러 개체의 공통점을 모아서 상위의 범주를 만드는 것, 추상화는 대표적인 특징만 골라서 표시하는 것.
- 은닉화, 캡슐화 : 은닉화는 굳이 드러나지 않아도 될 정보를 숨기는 것, 캡슐화는 중요한 사항을 감추고 다만 외부에서 사용할 수 있는 수단만 제공하는 것.
문제점 / 고민한 점
- 은닉화와 캡슐화에 사용될 수 있는 private(set) 에 대해서 고민했다.
극복 방법
- private(set)은, 외부에서는 읽기만 가능하고 내부에서만 수정이 가능하게 하고 싶을 때 사용한다.
- private(set) 없이 이러한 기능의 코드를 구현하려면 이렇게 해야 한다.
public class Product {
private var _serialNumber: String
public var serialNumber: String {
get {
return _serialNumber
}
set {
return _serialNumber = serialNumber
}
}
}
- get과 set을 사용하고, 값이 임시로 들어갈 변수를 따로 만들어줘야 하는 등, 손이 많이 간다.
- 하지만 private(set)을 사용하면 아래처럼 간단하게 해결할 수 있다.
public class Product {
private(set) var serialNumber: String
}
참조