Advanced
スパゲッティコードの設計パターン適用によるリファクタリング
メンテナンス困難なレガシーコードに対し、SOLID原則とデザインパターンを適用して再構築します。
📝 提示内容
以下に示す疑似コードは、数千行に及ぶif文のネストとグローバル変数の多用によってメンテナンスが不可能な状態です。
[コード例: 関数processOrder()が決済処理、在庫確認、メール送信、ログ記録をすべて手続き型で行っている]
このコードをリファクタリングし、以下の要素を取り入れたオブジェクト指向設計に書き直してください。
1. Strategyパターンを使用した決済手段の切り替え
2. Chain of Responsibilityパターンを使用した注文バリデーション
3. Dependency Injectionパターンを使用した依存関係の解消
リファクタリング後のコード(主要な言語は問いません)と、変更によってもたらされるテスタビリティおよび拡張性の向上について解説してください。