質問

い脱脂、オンライン文書の読み込みのwikiエスのブログがまだ戸惑.

  • 何というのは、一言でいえば 側面指向プログラミング ?
  • はだしオブジェクト指向プログラミング?うunlearn OOP?
  • ない場合は、どうやって知するために使用されたのですか?その主な違いはない。
  • できまrefact一つのですか?

僕はずっOO人と知りたい場合はいコミット反逆.

真剣に思新しいプロジェクトを早くしたい、正しい選択をできるようにする。

役に立ちましたか?

解決

何というのは、一言でいえば面指向プログラミング?

このように、AOPを注入行動の標準的な流れの別のプログラムの佇まいは、空間にほん.これにより、捕まえたクラスinstantiations,メソッドの呼び出し、課題等

はだしオブジェクト指向プログラミング?うunlearn OOP?

いいえ、です。で任意のプログラミング環境に対応します。します(上記を参照)。

ない場合は、どうやって知するために使用されたのですか?その主な違いはない。

ご利用のAOP,一般的に行いたい場合の実施は何らかの行動の何百ものクラスなく操作する授業です。典型的な例セキュリティ(認可の権利を呼び、指定されたメソッド/クラスにはログイン.私の体験もしていません。(使わないので、正直).

としては、上記の差は存在していませんので、いかに匹敵します。でも、たいと言う実行ログイン"通常"に、あなただけのロガーで適切なポイント:

log.write("hello");

がAOP場を'"サントリーを取り付けた各メソッドを呼び出し、グ法と呼ばれる.の点はAOPいアプローチは'ショットガン':取り付けもの、小さいサブセット.手動で追加するとロギングが一般的です。

できまrefact一つのですか?

な関連、その他の応答となります。再びセキュリティ、スワップにAOPモデルからの代表的なOOPモデルです。IsAllowed()になった場合(callingMethod.HasAttribute(foo)){可=true;}

希望者の回答を利用します。私の場合はエクスペディアをおすすめがさらに広がりますね。

他のヒント

いいえ、AOP補OOPよsupplantingます。AOPとOOPを異なる種類の"接着剤"きを行動にあるのです。OOPはもちろん、きみ行動を通じて継承と組成をしており、等AOPのきの動作所 を横断する懸念 傍受し、 点の削減 る新しいコードは実行前後には、選択した方法を選択します。

共通の例を横断する懸念は安全保障、ロギングやトランザクション制御.は、岩盤の原則の良いデザインコヒーレンス:理想的には、作品のコードがいっぱいで仕分けもバッチリでが一つあります。でmuddies水に追加セキュリティコードデータへのアクセスの授業です。AOPを解決する特定の問題をさせるように追加の行動を"面"として適用する面であるすべてのクラスはセキュリティ制御できます。

AOPは、完全に異なるアプローチの開発に、OOPは異なる。

ロギング、認証の問題、パフォーマンスのチェックコードを持っている場合は、

基本的に、これらは、異なるクラスに、プログラムのさまざまな部分では、大体、同じになります。あなたはそれを想像するように、あなたは、Javaで、あなたのアプリケーションを書くことができますが、コードのこれらの他のタイプ(横断的関心事)に追加する必要があるとき、彼らはでコンパイルできるように、そして、次に、あなただけの、プログラムにそれらを注入したが、ときあなたがソースコードを見て、あなただけが必要なビジネス・ロジックを参照してください。

AOPまたはOOPを使用する必要がある場合のように、私は、あなたがプログラムを書くことをお勧めそれは作業を取得、あなたはそれが機能していたときに、その後、実際には機能に関係していないコードを削除するに見えますが、いくつかを提供しています他の目的。あなたが入力パラメータは、それらを使用する前に、正しいことを確認する必要がある場合たとえば、そのための側面を使用しています。あなたが同様のイベント処理を使用している場合は、データアクセス層にスローされるすべての例外がログファイルへの書き込みなど、そのための様相を作成します。

削除として

これらの横断は、あなたのコードが小さくなります関するます。

あなたはより多くの経験を得るとして、あなたは、AOPのためのより多くの用途が表示されますが、最初に私はそれは、その後、AOPを使用してリファクタリングの書き込みをお勧めします。

を使用するEclipseは、Javaを使用している場合、AOPのために、AJDTプラグインとして使用すると、側面を追加している場所を確認するために非常に有用であろう。

アスペクト指向プログラミングとりわけ呼び出しと戻り、等キーポイントでメソッドまたは関数に(「アドバイス」と呼ばれる)アクションを挿入するためのキャッチー流行語です。それは言語に組み込まれて、すべての抽象化の障壁に違反するので、私はAOPで大きな問題を抱えています。モジュールが言うの方法はありません「これは様相ができ、これで混乱がどのような様相のことはできませんの混乱とは何かということです。」その結果、(あなたはそれがインポート他のモジュールのインターフェースが、何かを理解することなく、モジュールを理解することができます)は、内部不変条件に違反リスク、そしてあなたは、モジュール式の推論の原則を破壊します。

何年か前レイミー・スタタは、オブジェクト指向言語は、のサブクラス化のを制御し、キーの不変条件に違反することを防ぐかもしれない方法についての華麗な博士論文を書きました。 AOPに対応する作業が書かれていません。

通貨を獲得し、他のアイデアと同じように、AOPは、いくつかの壮大な成功を享受しているが(例えば、ない心の中で伐採して設計されたアプリケーションへのロギングを改造)、全体的に私はを閉じ込めるのご利用にあなたを促すだろう。

の非常に単純な場合にAOPの。いっそ、ちょうどアスペクト指向プログラミングにノーと言う。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top