バッドプラクティスから学ぶ 依存関係逆転の原則 による柔軟なシステム設計
Order
クラスが具体的な通知手段であるEmailNotifier
に直接依存しています。Order
クラスの修正が必要になります。UserSession
クラスがLocalStorage
に直接依存しないように修正しました。これにより、クラウドストレージやデータベースなど別の保存手段を簡単に導入できるようになります。
Document
クラスがPdfGenerator
に直接依存しないようにし、DocumentGenerator
という抽象クラスを導入しました。将来的にWordやHTML形式での出力も可能になります。
以上のように、依存関係逆転の原則により具体的な実装への依存を避け、柔軟でエレガントな設計が可能になります。