PiecewiseYieldCurve 선언을 보면서 당신은 이말을 할지도 모른다. "Wait a minute, wasn't friend considered harmful?" 답은 yes - friend 선언은 encapsulation을 깨고 클래스의 tight coupling을 강요한다.
그러나 대안을 살펴보자. Bootstrap 클래스는 curve data로의 write 접근이 필요하다. 이것을 friend로 선언하는데다가 이것에 세가지 접근 방법을 준다. 반면 우리는 데이터를 Bootstrap instance로 넘겨야 할지도 모른다; 그러나 이것은 두개의 클래스를 tightly coupled할지도 모른다(the curve internals는 bootstrap 코드를 바꾸지 않으면 바뀔수 없다). 반면 public interface를 통해 curve data를 노출해야될지도 모른다; 그러나 이것은 encapsulation을 더욱 위반하게 된다(우리는 write 접근이 필요하다는 것을 기억하라). 우리는 데이터를 각각의 클래스에서 encapsulate하거나 접근을 제어하기 위해 private 상속을 사용할지도 모른다. 릴리즈 1.0에서 우리는 friend 선언이 두개의 대안보다 더 좋다고 생각했다. 세번째(and best) 대안이 다음 릴리즈에서 구현될지도 모른다.

'quantlib > Implementation' 카테고리의 다른 글

4. Cash flows and coupons  (0) 2011.06.27
Aside: Cinderella method  (0) 2011.06.27
TTP: Template template parameter  (0) 2011.06.20
Aside: twin classes  (0) 2011.06.20
Aside: symmetry break  (0) 2011.06.19
Posted by karlsen

'quantlib > Implementation' 카테고리의 다른 글

Aside: Cinderella method  (0) 2011.06.27
Aside: a friend in need  (0) 2011.06.20
Aside: twin classes  (0) 2011.06.20
Aside: symmetry break  (0) 2011.06.19
Aside: evaluation date tricks  (0) 2011.06.18
Posted by karlsen
interpolated discount와 forward curves의 코드를 보면 interpolated zero-yield curve와 많이 비슷하다는 것을 알 수 있을 것이다. 자연스럽게 의문점이 생각날 것이다: 공통 코드를 추상화하는 것이 가능하지 않을까? 혹은 하나의 클래스 템플릿이 가능하지 않을까?
대답은 각각 yes 와 no이다. 어떤 코드는 template 클래스로 추상화 될수 있다. 그러나 curves는 반드시 세개의 abstract 함수를 구현해야만 한다(discountImpl, forwardImpl, zeroYieldImpl). 그래서 우리는 여전히 공통 코드와 세개의 모든 클래스가 필요하다.

'quantlib > Implementation' 카테고리의 다른 글

Aside: a friend in need  (0) 2011.06.20
TTP: Template template parameter  (0) 2011.06.20
Aside: symmetry break  (0) 2011.06.19
Aside: evaluation date tricks  (0) 2011.06.18
3. Term structure - the shape of things to come  (0) 2011.06.16
Posted by karlsen

블로그 이미지
Pricing, hedging, risk-managing a complex derivative product
karlsen

태그목록

공지사항

Yesterday
Today
Total

달력

 « |  » 2025.9
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

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함