【でこれーたー】
デコレーター とは?
💡 関数に「トッピング」を乗せる仕組み
📌 このページのポイント
デコレーターって具体的にどういうものなの?
たとえばPythonで@login_requiredと関数の上に書くと、その関数が呼ばれるたびに「ログインしているか」を自動でチェックしてくれるんだ。関数本体のコードは一切変えなくていい。ケーキの上にトッピングを乗せるみたいに、追加機能を「上から被せる」イメージだよ。
普通に関数の中に処理を書くのとどう違うの?
たとえば10個の関数すべてに「実行時間を計測する処理」を入れたいとき、全部の関数に同じコードを書くのは面倒だし保守が大変だよね。デコレーターを使えば@measure_timeと1行書くだけで全部に適用できる。「同じ処理を何度も書かない」というDRY原則に沿った設計なんだ。
デコレーターを使うときの注意点ってある?
TypeScriptやJavaScriptでもデコレーターが使えるって聞いたけど?
まとめ:ざっくりこれだけ覚えればOK!
「デコレーター」って出てきたら「関数やクラスに後付けで機能を追加する仕組みだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「decorator」 = 装飾するもの
💬 decorateは「飾り付ける」という意味。元のものを変えずにデコレーション(飾り)を追加するイメージだよ