目前HitObject (e.g. Lyric) 的 working property
不管 source 是 beatmap 還是 stage info
enum 都是放在一起
目前有一個改動,是讓 beatmap/stage 都有自己的 processor
能夠把 lyric 上面的 working property 用不同物件進行填充
目前有一個問題
那這些 working property 的 enum
是要合併還是分開?
想法
|
核心思想 |
優點 |
缺點 |
合併 |
- enum 會更接近 hit-object |
|
|
- 一個 hit-object 只會有一個 IHasWorkingProperty | - 每個 hit-object 只有一個 working property,比較好管理 | |
| 分開 | - enum 會更接近 working property 的 type,或是 category 的感覺
- 會根據 lyric 需要填充的種類(e.g. beatmap, stage info) 去產生對應的 working property validate type
- 一個 hit-object 會繼承多個 IHasWorkingProperty | - 可以根據 enum type 去猜這個 working property 會由哪個地方填充
- 可以很明確定義出 working property 是由哪個區域負責(beatmap or stage) | - 雖然不太可能,但如果出現三個填充對象(beatmap/stage 外,會讓場面有點混亂)
- 因為 interface name 一樣,要從 lyric 中拿到 invalidate type 會有點難度
- 如果想要確認所有的 working property 都 fill 的話會有點麻煩 |
總覺得 enum 分開好像沒有太大效益
但因為填充 property 的地方分成兩個,會讓填充的方式變得怪怪的
靈魂拷問
- 是想要看 lyric 上面有哪些 working property 是 invalidate ,還是想看 lyric 的 beatmap 相關的 working property invalidate?
另外想法(1)