0
我打算編寫一個解析器來分析輸入數據,選擇和修改一個字段子集並將它們輸出爲不同的格式。這是很容易的部分。輸入數據的模式將來可能會改變,我希望我的分析器能夠處理最後n個輸入模式以實現向後兼容。希望輸出模式不需要改變,但如果是這樣,我希望它保持在最低限度。我的問題是 - 我應該如何組織解析器代碼來處理對輸入模式的這種增量更改,同時儘可能多地重用代碼。我還想讓新來的人簡單一些,並輕鬆添加對下一個版本的支持。如何設計解析器以實現向後兼容?
如果重要,輸入數據具有類型和子類型的記錄(所以模塊化解析可能)。編程語言將是python(所以反射可能)。輸入格式是消息包,輸出格式是json。
我的想法很少。打開任何建議 -
- 具有完全不同的解析器版本並維護輸入模式到解析器版本的映射。根據需要複製粘貼代碼。
- 在輸入模式版本中,根據需要在代碼中包含一個帶開關盒的解析器。
- 具有基於繼承的結構,其中新版本的解析器從舊版本的解析器繼承,覆蓋所需的任何功能。
這似乎是一個整體靈活的軟件設計的問題,並針對未來的猜測做出決定...總之,不是SO類型的問題。 – Prune