第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

什么是面向方面的編程?

什么是面向方面的編程?

溫溫醬 2019-12-07 16:22:03
我了解面向?qū)ο蟮某绦蛟O(shè)計(jì),并且已經(jīng)編寫(xiě)OO程序很長(zhǎng)時(shí)間了。人們似乎在談?wù)撁嫦蚍矫娴木幊?,但是我從?lái)沒(méi)有真正了解過(guò)它是什么或如何使用它?;痉妒绞鞘裁??
查看完整描述

3 回答

?
蕪湖不蕪

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊

AOP解決了橫切關(guān)注點(diǎn)的問(wèn)題,橫切關(guān)注點(diǎn)可能是在不同方法中重復(fù)的任何類(lèi)型的代碼,通常無(wú)法像日志記錄或驗(yàn)證那樣被完全重構(gòu)為自己的模塊。因此,使用AOP,您可以將這些內(nèi)容排除在主要代碼之外,并按如下方式垂直定義:


function mainProgram()

   var x =  foo();

   doSomethingWith(x);

   return x;

}


aspect logging

    before (mainProgram is called):

    { 

       log.Write("entering mainProgram");

    }


    after (mainProgram is called):

    { 

       log.Write(  "exiting mainProgram with return value of "

                  + mainProgram.returnValue);

    }

 } 


aspect verification

    before (doSomethingWith is called):

    { 

       if (doSomethingWith.arguments[0] == null) 

       { 

          throw NullArgumentException();

       }


       if (!doSomethingWith.caller.isAuthenticated)

       { 

          throw Securityexception();

       }

    }

 }

然后使用aspect-weaver將代碼編譯為以下內(nèi)容:


function mainProgram()

   log.Write("entering mainProgram");


   var x = foo();   


   if (x == null) throw NullArgumentException();

   if (!mainProgramIsAuthenticated()) throw Securityexception();

   doSomethingWith(x);   


   log.Write("exiting mainProgram with return value of "+ x);

   return x;


查看完整回答
反對(duì) 回復(fù) 2019-12-07
?
繁星coding

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個(gè)贊

為了完整性而從副本中復(fù)制(愛(ài)因斯坦):

經(jīng)典示例是安全性和日志記錄。與其在您的應(yīng)用程序內(nèi)編寫(xiě)代碼以記錄x的出現(xiàn)或檢查對(duì)象z的安全訪問(wèn)控制,不如使用普通代碼的“帶外”語(yǔ)言措辭,它可以系統(tǒng)地注入安全性或登錄沒(méi)有天真地將其包含在其中的例程這樣一種方式,即使您的代碼不提供它,它也會(huì)得到照顧。

一個(gè)更具體的示例是操作系統(tǒng)提供對(duì)文件的訪問(wèn)控制。一個(gè)軟件程序不需要檢查訪問(wèn)限制,因?yàn)榈讓酉到y(tǒng)可以完成該工作。

如果您認(rèn)為根據(jù)我的經(jīng)驗(yàn)需要AOP,則實(shí)際上確實(shí)需要投入更多的時(shí)間和精力來(lái)進(jìn)行系統(tǒng)內(nèi)適當(dāng)?shù)脑獢?shù)據(jù)管理,并著重考慮周全的結(jié)構(gòu)/系統(tǒng)設(shè)計(jì)。


查看完整回答
反對(duì) 回復(fù) 2019-12-07
  • 3 回答
  • 0 關(guān)注
  • 516 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)