




已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
設(shè)計(jì)模式訪問者模式 訪問者模式(Visitor)是一種分離對象數(shù)據(jù)結(jié)構(gòu)與行為的方法,通過這種分離,可以為一個已存在的類或類群增加新的操作而無需為它們作任何修改。 結(jié)構(gòu)圖為:公司的人事評估需要人事部訪問每一個員工列表,逐個對員工作出評估,人事部有兩個訪問者,一個訪問者評估員工假期,另一個評估員工薪資。實(shí)現(xiàn)代碼: /Element.hclassVisitor;classElementpublic:Element();virtualElement();virtualvoidAccept(Visitor*)=0;friendclassVisitor;/Element.cpp#includestdafx.h#includeElement.hElement:Element()Element:Element()/Employee.h#includeElement.hclassEmployee:publicElementpublic:Employee(char*,double,int);virtualEmployee();voidAccept(Visitor*);char*GetName();doubleGetSalary();intGetVacationDays();voidSetSalary(double);voidSetVacationDays(int);private:char*m_pName;doublem_dSalary;intm_nVacationDays;/Employee.cpp#includestdafx.h#includeEmployee.h#includeVisitor.hEmployee:Employee(char*pName,doubledSalary,intnVacationDays)m_pName=pName;m_dSalary=dSalary;m_nVacationDays=nVacationDays;Employee:Employee()voidEmployee:Accept(Visitor*pVisitor)pVisitor-Visit(this);char*Employee:GetName()returnm_pName;doubleEmployee:GetSalary()returnm_dSalary;intEmployee:GetVacationDays()returnm_nVacationDays;voidEmployee:SetSalary(doubledSalary)m_dSalary=dSalary;voidEmployee:SetVacationDays(intnVacationDays)m_nVacationDays=nVacationDays;/Visitor.hclassElement;classVisitorpublic:virtualVisitor()=0;virtualvoidVisit(Element*)=0;protected:Visitor();/Visitor.cpp#includestdafx.h#includeVisitor.hVisitor:Visitor()Visitor:Visitor() /IncomeVisitor.h#includeVisitor.hclassIncomeVisitor:publicVisitorpublic:IncomeVisitor();virtualIncomeVisitor();voidVisit(Element*);/IncomeVisitor.cpp#includestdafx.h#includeIncomeVisitor.h#includeEmployee.h#includeusingnamespacestd;IncomeVisitor:IncomeVisitor() IncomeVisitor:IncomeVisitor() voidIncomeVisitor:Visit(Element*pElement)/訪問者提高員工10%的薪資Employee*pEmployee=static_cast(pElement);doubledSalary=pEmployee-GetSalary();pEmployee-SetSalary(dSalary*1.10);cout員工GetName()的新工資是:GetSalary()元endl;/VacationVisitor.h#includeVisitor.hclassVacationVisitor:publicVisitorpublic:VacationVisitor();virtualVacationVisitor();voidVisit(Element*);/VacationVisitor.cpp#includestdafx.h#includeVacationVisitor.h#includeEmployee.h#includeusingnamespacestd;VacationVisitor:VacationVisitor() VacationVisitor:VacationVisitor() voidVacationVisitor:Visit(Element*pElement)/訪問者為員工增加3天假期Employee*pEmployee=static_cast(pElement);intnVacationDays=pEmployee-GetVacationDays();pEmployee-SetVacationDays(nVacationDays+3);cout員工GetName()的新假期是:GetVacationDays()天endl;/main.cpp#includestdafx.h#includeEmployee.h#includeIncomeVisitor.h#includeVacationVisitor.hintmain(intargc,char*argv)Element*pEmployeeA=newEmployee(張三,10000.00,10);Element*pEmployeeB=newEmployee(李四,15000.00,20);IncomeVisitorincomeV;VacationVisitorvacationV;incomeV.Visit(pEmployeeA);vacationV.Vi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年精準(zhǔn)營銷大數(shù)據(jù)在能源行業(yè)的應(yīng)用報告
- 工業(yè)互聯(lián)網(wǎng)平臺2025年網(wǎng)絡(luò)安全態(tài)勢感知技術(shù)區(qū)塊鏈技術(shù)應(yīng)用報告
- JJG(交通) 008-2005 汽車制動踏板力計(jì)
- 北師大版六年級下冊第4單元 達(dá)標(biāo)測試語文試卷
- 海盟實(shí)業(yè)2025年決策水平分析報告
- 導(dǎo)演與制片專業(yè)實(shí)習(xí)心得體會
- 高空作業(yè)中的個人防護(hù)措施
- 小學(xué)家長家庭作業(yè)輔導(dǎo)計(jì)劃
- 暖心護(hù)理工作總結(jié)
- 家庭教育中心創(chuàng)業(yè)項(xiàng)目實(shí)施計(jì)劃
- 醫(yī)療核心制度題庫含答案
- 2025年中國鐵路濟(jì)南局集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 吊車組塔施工方案
- 7 第七章 共產(chǎn)主義崇高理想及其最終實(shí)現(xiàn)
- 美愛德華·W·薩義德-東方學(xué)
- 云南咖啡行業(yè)行業(yè)發(fā)展趨勢及投資戰(zhàn)略研究分析報告
- 華為的管理框架
- 新《科學(xué)技術(shù)普及法》專題講座課件
- 電動機(jī)常見故障分析與維護(hù)(課件)
- 藥品管理與使用規(guī)范管理制度
- 《wto案例分析》課件
評論
0/150
提交評論