[問題] 複雜演算法的架構
問題:
A B C三個class,彼此沒有繼承關系
A含有很多個B與C (composition)
現在要實作一個演算法,這個演算法大致可分三個步驟:
1. 對A的成員作一些改變
2. 對A中的B的成員作改變
3. 對A中的C的成員作改變
假設我把演算法都寫在class A中
在第2、3步驟時就會有很多
a->getB(i)->BsPublicMethod()
a->getC(j)->CsPublicMethod()
根據refactor的原則
反覆出現的a->getB(i) a->getC(j)基本上表示這應該要放在B和C裡面
但如果真的放在B C裡,整個演算法就分散在不同的class
這樣似乎不是很好,哪天如果想到另一個演算法,那BC中不就充滿各種不同演算法??
請問像這樣的問題是否有既有的design pattern??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.192.162.252
→
04/30 18:01, , 1F
04/30 18:01, 1F
推
04/30 18:08, , 2F
04/30 18:08, 2F
→
04/30 18:12, , 3F
04/30 18:12, 3F
→
05/01 09:00, , 4F
05/01 09:00, 4F
→
05/01 09:01, , 5F
05/01 09:01, 5F
→
05/01 09:02, , 6F
05/01 09:02, 6F
→
05/01 09:03, , 7F
05/01 09:03, 7F
推
05/01 09:18, , 8F
05/01 09:18, 8F
→
05/01 23:46, , 9F
05/01 23:46, 9F
→
05/01 23:47, , 10F
05/01 23:47, 10F
→
05/01 23:47, , 11F
05/01 23:47, 11F
→
05/02 00:00, , 12F
05/02 00:00, 12F
→
05/02 00:03, , 13F
05/02 00:03, 13F
→
05/02 00:06, , 14F
05/02 00:06, 14F
→
05/02 00:06, , 15F
05/02 00:06, 15F