我即將實現文檔生成器。我堅持遵循開放原則,這給我帶來了一些麻煩。要求如下:嵌套抽象和開放閉合原理
- 會有多種文檔類型(即協議,委託書)
- 會有多種文檔格式(即XML,JSON,HTML,PDF)
- 各文檔類型需要不同的數據集是存在於該文件(即客戶的詳細資料,plenipotent細節)
由於我的選擇以下開閉原則的,我強烈希望避免使用switch語句。這意味着我需要爲特定類型的文檔和格式類型引入一些抽象和實現。
是否需要提供m x n個類的實現,其中m是文檔類型的數量,n是文檔格式的數量?我覺得這是做錯的方式。你能否給我一些提示,告訴我如何正確設計這樣的文件生成器?
我從來沒有想過總是尊重某個原則。你不應該如此專注於O/C或任何其他_guideline_,你應該專注於理解域名和基於此的設計。價值對象和適當的聚合是這裏的關鍵。 – MikeSW
你說什麼「適當的聚合」是什麼意思?你能否提供一些例子? – Dawid
適當的聚合意味着您需要正確識別每個文檔模型,如域所示。基本上你需要用自己的約束和規則來理解每個文檔的每個細節。它與代碼,OOP,SOLID等無關。您需要了解域如何思考和接近事物,即您需要成爲領域專家,至少在此特定主題上。用域名自己的語言思考域名。看不到任何課程,功能等。 – MikeSW