2025年5月15日
2025/5/15 23:08:00
やりたい
やらねば
- 研究
- iPad miniを充電する
やった
- ラジオ体操
- 肩こりまくりなので良く効く
- iPad miniを充電する
- これで明日外出時にiPad miniが使える
- 『なぜ依存を注入するのか DIの原理・原則とパターン』を読む
- 良すぎて2ページほどでおなか一杯になった
- 労働
明日
やりたい
聖地巡礼
ホルモンでカレースープを作る
聖地巡礼
ホルモンでカレースープを作る
Decoratorパターンで例外のハンドリングができる……ってコト?!
こんな感じっぽい
class ErrorHandlingProductRepositoryDecorator implements IProductRepository {
constructor(private readonly productRepository: IProductRepository) { }
async insert(product: Product) {
try {
this.productRepository.insert(product)
} catch(error) {
// エラーハンドリングの処理
}
}
}
class Application {
constructor(private readonly productRepository: IProductRepository) { }
}
const application = new Application(
new ErrorHandlingProductRepositoryDecorator(
new ProductRepository()
)
)
こうすることで、ProductRepositoryは「エラーハンドリングとか知らね」ってできるし、テストとかでエラーハンドリングしたくない場合はProductRepositoryをApplicationに直接渡してしまえばよいってわけね。