翻譯zhangv (derekzhangv.at.hotmail.com)
原文:http://www.devx.com/Java/Article/28422/0/page/1
方面vs 面向對象編程:甚么時候使用,該使用哪個?
面向方面編程( AOP)聲稱它關注的是傳統面相對象編程(OOP)不能完全或直接解決的問題.下面將對兩種技術進行行行(line-by-line)比較來找出這種說法對在何處.
像大多數開發人員一樣,我已經使用OOP進行開發多年了.因此,當我發現AOP強調的很多傳統 OOP無法完全或直接解決的問題時,我覺得有必要來研究一下它如何有助于應用程序的開發.比較這兩種技術將為我們提供一些在實際應用中很有用的見解.這里我設計了一個案例:一個OOP應用程序,其中在某些方面適合使用 AOP.
本文展示了一個簡單的例子.一開始介紹了問題域,然后給出兩種解決方案:一種使用OOP,一種使用AOP.后者使用了 JDK1.5,JUnit,和AspectWerkz.最后說明如何編寫代碼.
在本文最后,你會知道所需知道的一切關于使用AOP的只是,包括它在軟件設計中試圖要解決的問題.
問題域描述
一個軟件公司雇傭一個程序員,指定給他一個業務部門并要求他隨時向經理報告.當團隊成員完成他們的目標時,經理會給他們相應的積分.公司所需要的方案必須能夠增加一個新的雇員并給當前的員工增加積分.為了方便,我們用CSV文件存儲數據.

圖1 解決方案模型
類Manager(經理)繼承自類Employee,包含一個額外的屬性,Managing Project.一個部門可能包含很多員工.多個部門構成了公司.暫不考慮公司這樣的一個類,因為它在問題域之外.
解決方案設計
以下流程圖描述了解決方案設計.

圖2 對象之間的交互(增加一個新的員工,指派給他一個部門和經理)
為了簡單,本文只關注必須的細節.不過,您也可以深入研究代碼來獲取一些其他的信息.
[link]http://www.devx.com/assets/sourcecode/13172.zip[/link]
EmployeeServiceTestCase,一個JUnit測試用例類,模擬一個最終用戶,創建新員工記錄,指派部門和經理.它獲取所有可用的部門和經理數據并顯示在圖形界面上.為了實例化域對象BusinessUnit和Manager,獲得的記錄將傳遞給工廠類.之后,通過給EmployeeService傳遞一個引用來創建一個Employee對象.這個服務類使用EmployeeFactory創建對象,并把這個對象傳給EmployeeRepository 來進行持久化操作.
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/
關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073
老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月