JavaにおけるAOP(アスペクト指向)について、
正確な説明はしなくて良いので、比喩を用いて低学年が理解できるように説明してください。
※問題みたいになってしまいましたがよろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
低学年向けですか。こんなのはどうでしょうか。
アスペクト指向というものについてバケツリレーで説明するよ。
みんなでバケツリレーをします。その途中に別のクラスのお友達を入れてあげることにしよう。
でもみんなの列は変えずにお友達を入れてあげたい。
入れてあげるんだけどみんなの列はそのままなんだ。
その時に使うのがアスペクト指向という考え方。
どこでお友達を入れてあげるかは決めてあげて、みんなの列のその位置の隣にお友達に立ってもらうんだ。
バケツは隣にお友達がいるところになったらお友達を介して後ろの人に渡るんだ。
みんなだけのバケツリレー
○→○→○→○→○→○→○→○→○→○
アスペクト指向のバケツリレー
決めたこと:お友達(●)には5番目に入ってもらいます。
○→○→○→○ ○→○→○→○→○→○
' └●┘
みんなの列に友達を入れてあげる方法としては(現実世界では)普通こう並ぶよね。
みんなと友達のバケツリレー
○→○→○→○→●→○→○→○→○→○→○
アスペクト指向の並び方は違っているよね。アスペクト指向の特徴は「みんなの列は変わらない」ということなんだ。最初に言った「入れてあげるんだけどみんなの列はそのまま」というのはこういうことだよ。
バケツリレーになじみがなければ、教室の机の列とプリントなどに読み替えてもらえれば良いと思います。
上記の説明では「横断的関心事」に関する部分が入っていません。次の段階で説明するのが良く、バケツリレーの比喩ではいささか不自然になると思ったためです。
友達(●)がみんなの列を並走していて、タイミングになったらバケツを受け取る感じです。(表現が…)
〇→〇→〇→〇→〇→〇→〇→〇→〇→〇
' ● ● ●
※友達(●)が登場するタイミングでバケツが渡ってると思ってください。
※友達は走って先回りしている体で。
※友達が同一人物(同じ処理)がポイント。別の人(別の処理)なら別の列を作り▲や■で表現
実際にプログラミングでアスペクト指向を使うとすれば、YatsurugiさんやLLmanさんの回答されている内容にふれることが必要だったり理解の助けになると思います。
最近はプログラミングの塾なんかもあるそうで。時代ですね。
投稿2016/09/10 23:10
編集2016/09/11 01:18総合スコア804
0
アスペクト指向を一言で説明すると
「元のソースコードに変更を加えずに新たな処理を追加すること」
そして
「誤った処理を減らし可読性のよいプログラムを作ることができる」
ということではないでしょうか?
詳細例も含めて
https://thinkit.co.jp/free/compare/15/5/1.html
のサイトも参考にされてはいかがでしょうか?
投稿2016/09/10 16:04
総合スコア1628
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
JavaにおけるAOP(アスペクト指向)について
「オブジェクト指向(OOP)」ではオブジェクト単位、
Javaならクラス単位でプログラムを作っていきます。
しかし、「横断的関心事」が各クラスに散在してしまうので、
その欠点を補うための仕組みが「アスペクト指向(AOP)」です。
クラスという分割の単位を超えて、統合する仕組みです。
たとえて言いますと、社会の組織での「縦割りの弊害」
といった問題と同じことが、プログラムでも起きてくるわけです。
たとえば、環境問題。環境汚染は国境を越えて広がりますよね。
海や空はつながっているから、大気汚染や海洋汚染に国境は関係ない。
だから、国際的に議会を開いて、一国を超えた対策をするわけです。
プログラムに戻ると、たとえば「ロギング」というのは、
各クラスごとに散らばりがちな機能です。
じゃあそれをAOPでまとめればいい、という考え方です。
ただ一方で現実的な話をすると、AOPはさほど普及していません。
「ロギング程度に、そんなご大層な仕組みの導入が必要なの?」
という別のコスト感覚があるのかもしれません。
投稿2016/09/10 16:13
総合スコア5592
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/12 01:27
0
ベストアンサー
人間は下記のことができます。
・歩く
・走る
ただ、人間は生物です。呼吸をしないと死んでしまいます。
つまり、人間は下記のことができないといけません。
・歩く
・走る
・苦しくなったら呼吸をする
これについて違和感はありませんか?
あなたは普段、意識して呼吸をしているでしょうか。
「歩く」や「走る」は意識して行いますが、「呼吸する」は無意識に行います。
このように意識して行うことと無意識で行うことを分けることがAOPの第一歩になります。
投稿2016/09/11 17:11
総合スコア18155
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/12 01:29
2016/09/12 01:50
2016/09/12 07:29
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/12 01:27