お父さんのためのAOP解説

最近、AOP(Aspect Oriented Programming)についての話題を良く眼にしたり耳にしたりしますよね。そうそう、アスペクトなんとかって奴です。
これの説明ときたら、曰く「横断的関心事」、曰く「異なった様相」、曰く「関心事の分離」。
これじゃあ、何のことだか分かりませんよね。
でも、ご安心を。このAOPっていうのは、お父さんの懐かしい友達「パッチ」のことなんですよ(かなり意訳してますけど)。
思い出しましたか?寒いマシン室で「あぁ、この処理が入ってないよ。パッチ当てなきゃ」って呟いてた日々。
つまり「AOPで例外処理とトランザクション処理をおこなう」ってのは「例外処理とトランザクション処理のパッチを当てる」ってことなんですよ。「横断的関心事」っていうのは「1つのパッチ(関心事)を複数箇所に当てる(横断的)」ってことですよ。
AOPの仕組み自体も、(ほとんどは)パッチを当てるのと同じですよ。ただ、「相対アドレス調べてパッチエリアまでジャンプさせて…」なんてする必要はありません。普通にコードを書いて、定義ファイルでパッチを当てるところを指定すれば良いんです。便利なパッチでしょう。
AOPがパッチと聞いて「バグの対処か!」なんて騒いでもいけません。パッチは計画外におこないましたが、AOPは最初から計画して当てるパッチなんです。
どうですか、お父さん。AOPは「計画されたパッチを複数箇所に簡単に当てることができる」ってことなんですよ。
大体、最近の若造だけが難しいことを理解出来て、お父さんに理解できない訳ないじゃないですか。ソフトウェアは過去の資産を便利にリプレイスしているだけですよ。