freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java程序設(shè)計(jì)模式程序設(shè)計(jì)(編輯修改稿)

2024-08-03 11:53 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 。24. returntrue。25. }26. }27. //不支持remove操作28. publicvoidremove(){29. thrownewUnsupportedOperationException(30. AlternatingMyIteratordoesnotsupportremove())。31. }32. }33. }使用時(shí),MyIterator對(duì)象直接調(diào)用iterator()方法就可以將自定義容器對(duì)象轉(zhuǎn)換為迭代器對(duì)象。Iterator模式的優(yōu)點(diǎn):(1).實(shí)現(xiàn)功能分離,簡(jiǎn)化容器接口。讓容器只實(shí)現(xiàn)本身的基本功能,把迭代功能委讓給外部類(lèi)實(shí)現(xiàn),符合類(lèi)的設(shè)計(jì)原則。(2).隱藏容器的實(shí)現(xiàn)細(xì)節(jié)。(3).為容器或其子容器提供了一個(gè)統(tǒng)一接口,一方面方便調(diào)用;另一方面使得調(diào)用者不必關(guān)注迭代器的實(shí)現(xiàn)細(xì)節(jié)。(4).可以為容器或其子容器實(shí)現(xiàn)不同的迭代方法或多個(gè)迭代方法。Strategy設(shè)計(jì)模式 Strategy策略設(shè)計(jì)模式主要是定義一系列的算法,把這些算法封裝成單獨(dú)的類(lèi),在運(yùn)行時(shí)動(dòng)態(tài)選擇需要的算法,策略模式機(jī)制如下:策略模式例子如下:[java] view plaincopy1. //文本替換策略2. abstractclassTextStrategy{3. protectedStringtext。4. 5. publicTextStrategy(Stringtext){6. =text。7. }8. publicabstractStringreplace()。9. }10. //替換算法1:將文本中@r@n替換為@n11. classStrategyOneextendsTextStrategy{12. publicStrategyOne(Stringtext){13. super(text)。14. }15. publicStringreplace(){16. (“StrategyOne:”)。17. Stringresult=(@r@n,@n))。18. returnresult。19. }20. }21. //替換算法2:將文本中@n替換為@r@n22. classStrategyTwoextendsTextStrategy{23. publicStrategyTwo(Stringtext){24. super(text)。25. }26. publicStringreplace(){27. (“StrategyTwo:”)。28. Stringresult=(“@n,@r@n))。29. returnresult。30. }31. }32. publicclassTextCharChange{33. publicstaticvoidreplace(TextStrategystrategy){34. ()。35. }36. publicstaticvoidmain(String[]args){37. StringtestText1=Thisisatesttext!!@nOh!LineReturn!!@n。38. StringtestText2=Thisisatesttext!!@r@nOh!LineReturn@r@n。39. (newStrategyOne(testText2))。40. (newStrategyTwo(testText1))。41. }42. }State狀態(tài)模式和Strategy策略模式非常類(lèi)似,但是有如下區(qū)別:(1).State狀態(tài)模式重點(diǎn)在于設(shè)定狀態(tài)變化,根據(jù)狀態(tài),返回相應(yīng)的響應(yīng)。(2).Strategy策略模式重點(diǎn)在于根據(jù)需求直接采用設(shè)定的策略,即根據(jù)場(chǎng)景選擇合適的處理算法,而不需要改變狀態(tài)。Factory設(shè)計(jì)模式 Factory工廠設(shè)計(jì)模式為創(chuàng)建對(duì)象提供了一種抽象,而對(duì)使用者屏蔽了對(duì)象創(chuàng)建的具體細(xì)節(jié)過(guò)程,工廠模式有三種:簡(jiǎn)單工廠模式,抽象工廠模式和工廠方法模式。(1).簡(jiǎn)單工廠模式:又叫靜態(tài)工廠模式,簡(jiǎn)單工廠只包括一個(gè)抽象產(chǎn)品類(lèi)(該類(lèi)可以是接口,也可以是具體的類(lèi)),所有需要的產(chǎn)品類(lèi)都是該抽象產(chǎn)品類(lèi)的子類(lèi)。簡(jiǎn)單工廠模式中工廠為具體產(chǎn)品工廠,產(chǎn)品為抽象產(chǎn)品,由工廠實(shí)例創(chuàng)建產(chǎn)品實(shí)例:一個(gè)生成圓形和矩形的圖形工廠,例子如下:[java] view plaincopy1. //圖形接口2. interfaceShape(){3. publicvoiddraw()。4. }5. //圓形6. classCircleimplementsShape{7. publicvoiddraw(){8. (“Circleisdrawing”)。9. }10. }11. //矩形12. classRectangleimplementsShape{13. publicvoiddraw(){14. (“Rectangleisdrawing”)。15. }16. }17. //圖形工廠18. classShapeFactory{19. publicstaticShapecreateShape(Stringname)throwsInstantiationException,20. IllegalAccessException,21. ClassNotFoundException22. {23. //使用java的反射機(jī)制來(lái)產(chǎn)生對(duì)象實(shí)例24. return(Shape)(name).newInstance()。25. }26. }27. publicclassShapeDemo{28. publicstaticvoiddraw(Shapeshape){29. ()。30. }31. publicstaticvoidmain(String[]args){32. draw((“Circle”))。33. draw((“Rectangle”))。34. }35. }圖形工廠負(fù)責(zé)具體圖形的對(duì)象實(shí)例化工作,圖形使用者使用時(shí)不需要關(guān)心圖形對(duì)象的具體產(chǎn)生過(guò)程。(2).抽象工廠模式:抽象工廠模式中可以包括多個(gè)抽象產(chǎn)品類(lèi),每個(gè)抽象產(chǎn)品類(lèi)可以產(chǎn)生出多個(gè)具體產(chǎn)品類(lèi),一個(gè)抽象工廠用于定義所需產(chǎn)品的組合形式,抽象工廠派生具體工廠類(lèi),這些具體工廠類(lèi)就是簡(jiǎn)單工廠模式中的工廠類(lèi),具體工廠類(lèi)負(fù)責(zé)具體產(chǎn)品實(shí)例的創(chuàng)建:以軟件皮膚為例,軟件皮膚由樣式style和顏色color組成,實(shí)現(xiàn)一套IOS風(fēng)格的軟件皮膚,一套Android風(fēng)格的軟件皮膚,通過(guò)抽象工廠實(shí)現(xiàn)軟件皮膚自由切換例子如下:[java] view plaincopy1. //軟件皮膚類(lèi)2. classSkin{3. privateSkinFactoryskinFactory。4. publicSkin(SkinFactoryfactory){5. setSkinFactory(factory)。6. }7. publicvoidsetSkinFactory(SkinFactoryfactory){8. =factory9. }10. publicvoidshowSkin(){11. (“Style=”+().showStyle()+“,color=”+().showColor())。12. }13. }14. //軟件Style15. interfaceStyle(){16. publicvoidshowStyle()。17. }18. //IOSstyle19. classIOSStyleimplementsStyle{20. publicvoidshowStyle(){21. (“ThisisIOSstyle”)。22. }23. }24. //Androidstyle25. classAndroidStyleimplementsStyle{26. publicvoidshowStyle(){27. (“ThisisAndroidstyle”)。28. }29. }30. //軟件Color31. interfaceColor(){32. publicvoidshowColor()。33. }34. //IOScolor35. classIOSColorimplementsColor{36. publicvoidshowColor(){37. (“ThisisIOScolor”)。38. }39. }40. //Androidcolor41. classAndroidColorimplementsColor{42. publicvoidshowColor(){43. (“ThisisAndroidcolor”)。44. }45. }46. //抽象皮膚工廠47. interfaceSkinFactory{48. publicStylegetStyle()。49. publicColorgetColor()。50. }51. //IOS皮膚工廠52. classIOSSkinFactoryimplementsSkinFactory{53. publicStylegetStyle(){54. returnnewIOSStyle()。55. }56. publicColorgetColor(){57. returnnewIOSColor()。58. }59. }60. //Android皮膚工廠61. classAndroidSkinFactoryimplementsSkinFactory{62. publicStylegetStyle(){63. returnnewAndroidStyle()。64. }65. publicColorgetColor(){66. returnnewAndroidColor()。67. }68. }69. publicclassSkinDemo{70. publicstaticvoidmain(String[]args){71. //顯示一套IOS皮膚72. Skinskin=newSkin(newIOSSkinFactory())。73. ()。74. //換一套Android的皮膚75. (newAndroidSkinFactory())。76. ()。77. }78. }抽象工廠指定了產(chǎn)品組合形式,具體的工廠產(chǎn)生具體的產(chǎn)品,抽象工廠適用于多個(gè)產(chǎn)品相互組合的情況。(3).工廠方法模式:工廠方法中也只包含一個(gè)抽象產(chǎn)品類(lèi),抽象產(chǎn)品類(lèi)可以派生出多個(gè)具體產(chǎn)品類(lèi)。工廠方法定義一個(gè)用于創(chuàng)建產(chǎn)品的接口,讓子類(lèi)決定實(shí)例化哪一個(gè)類(lèi),使得類(lèi)的實(shí)例化延遲到子類(lèi)。工廠方法模式例子如下:[java] view plaincopy1. //汽車(chē)接口2. interfaceICar{3. publicvoidrun()。4. }5. //奔馳車(chē)6. classBenzCarimplementsICar{7. publicvoidrun(){8. (“Benzcarrun”)。9. }16
點(diǎn)擊復(fù)制文檔內(nèi)容
語(yǔ)文相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1