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

正文內(nèi)容

java程序設(shè)計模式程序設(shè)計(完整版)

2024-08-09 11:53上一頁面

下一頁面
  

【正文】 g(int}+8. classString5. public()。41. =voidProxyDemo{}(“()”)。29. 28. 23. //目標程序21. publicvoid=7. classvoidg()。abstract}5. doSomething(){2. 一般認為飽漢模式要比餓漢模式更加安全。return==6. 4. 餓漢單類模式即延遲初始化單類方式,例子代碼:[java] view plaincopy1. publicreturnpublic8. Singleton1Java設(shè)計模式 創(chuàng)建型模式AbstractFactory ( 抽象工廠 ) FactoryMethod ( 工廠方法 ) Singleton ( 單態(tài)模式 ) Builder ( 建造者模式 ) Prototype ( 原型模式 ) 結(jié)構(gòu)型模式Adapter ( 適配器模式 ) Bridge ( 橋接模式 ) Composite ( 組合模式 ) Decorator ( 裝配模式 ) Facade ( 外觀模式 ) Flyweight ( 享元模式 ) Proxy ( 代理模式 ) 行為型模式Chain of Responsibility ( 責(zé)任鏈模式 ) Command ( 命令模式 ) Interpreter ( 解釋器模式 ) Iterator ( 迭代器模式 ) Mediator ( 中介者模式 ) Memento ( 備忘錄模式 ) Observer ( 觀察者模式 ) State ( 狀態(tài)模式 ) Strategy ( 策略模式 ) TemplateMethod ( 模板方法 ) Visitor ( 訪問者模式 ) Toney Chen的總結(jié)Singleton設(shè)計模式 Singleton單類模式是最簡單的設(shè)計模式,它的主要作用是保證在程序運行生命周期中,使用了單類模式的類只能有一個實例對象存在。3. instancestaticinstance。class8. publicnull){13. instance。上面兩種Singleton單類設(shè)計模式的實現(xiàn)方式都隱藏有如下的問題:(1).雖然構(gòu)造方式的訪問修飾符為private,即除了自身以外其他任何類都無法調(diào)用,但是通過反射機制的setAccessiable(true)方法可以訪問私有方法和屬性。7. 8. return}voidSingleton單類模式中只有一個INSTANCE枚舉元素,枚舉可以保證真?zhèn)€程序生命周期中只有一個實例對象存在,同時還避免了常規(guī)Singleton單類模式private構(gòu)造方法被反射調(diào)用和序列化問題。2. h()。Proxyprivatenew}f(){voidpublic31. 32. (“()”)。main(String[]new2. interfacevoids)。FooImplpublics)。i)s)“,private=25. }Object[]+foo=Class[]{},動態(tài)帶來自定義 Handler實現(xiàn)InvocationHandler接口,自定義Handler實例化時,將代理的實現(xiàn)類傳入自定義Handler對象中。isFrog}kiss(){false。public16. response()。implementsreturn10. 12. State}kiss(){23. args){Creature()。26. State{operation1(){voidvoid20. class23. newState){40. //……46. //……52. //……58. 60. publicprivatesp){public=70. (new(2).Proxy代理模式的目的是控制客戶端對目標程序的訪問,而State狀態(tài)模式是為了根據(jù)條件動態(tài)改變目標程序。1) 迭代器角色(Iterator):迭代器角色負責(zé)定義訪問和遍歷元素的接口。Java集合框架中迭代設(shè)計模式的應(yīng)用:[java] view plaincopy1. //迭代器hasNext()。8. public12. //java集合框架的根接口,該接口繼承了容器迭代化接口,因此java中的集合都可以被迭代自定義迭代器,以ArrayList為自定義迭代容器的底層數(shù)據(jù)結(jié)構(gòu),實現(xiàn)自定義迭代器的代碼如下:[java] view plaincopy1. public2. 3. list。//負責(zé)創(chuàng)建具體迭代器角色的工廠方法publicreturn11. 15. }{{}}27. //不支持remove操作not32. Iterator模式的優(yōu)點:(1).實現(xiàn)功能分離,簡化容器接口。class5. 7. StrategyOne13. super(text)。}replace()resultresult。}22. classString28. String29. returnclassargs){=Return!!n。is41. }簡單工廠模式中工廠為具體產(chǎn)品工廠,產(chǎn)品為抽象產(chǎn)品,由工廠實例創(chuàng)建產(chǎn)品實例:一個生成圓形和矩形的圖形工廠,例子如下:[java] view plaincopy1. //圖形接口5. //圓形9. }implementsvoidis17. //圖形工廠IllegalAccessException,28. shape){staticdraw((“Rectangle”))。(2).抽象工廠模式:抽象工廠模式中可以包括多個抽象產(chǎn)品類,每個抽象產(chǎn)品類可以產(chǎn)生出多個具體產(chǎn)品類,一個抽象工廠用于定義所需產(chǎn)品的組合形式,抽象工廠派生具體工廠類,這些具體工廠類就是簡單工廠模式中的工廠類,具體工廠類負責(zé)具體產(chǎn)品實例的創(chuàng)建:以軟件皮膚為例,軟件皮膚由樣式style和顏色color組成,實現(xiàn)一套IOS風(fēng)格的軟件皮膚,一套Android風(fēng)格的軟件皮膚,通過抽象工廠實現(xiàn)軟件皮膚自由切換例子如下:[java] view plaincopy1. //軟件皮膚類7. publicvoid+Style(){showStyle()。19. classimplementsvoidiscolor”)。colorSkinFactory{getStyle()。Color52. classpublicAndroidSkinFactorypublicColor67. }70. args){Skin73. 抽象工廠指定了產(chǎn)品組合形式,具體的工廠產(chǎn)生具體的產(chǎn)品,抽象工廠適用于多個產(chǎn)品相互組合的情況。3. ICar{run(){run”)。createCar()。BenzCarFactorypublicreturn29. 30. main(String[]factory37. 使用工廠模式,返回的實例一定是工廠創(chuàng)建的,而不是從其他對象中獲取的。Prototype原型模式允許一個對象再創(chuàng)建另外一個可定制的對象,根本無需知道任何關(guān)于對象創(chuàng)建的細節(jié)。Colneable{getShapeName(){shapeName。15. 23. 24. }26. Circle()。(Shape)()。Cloneable接口是一個標記接口,也就是沒有任何內(nèi)容,定義如下:[java] view plaincopy1. package而引用類型的字段被復(fù)制到副本中的還是引用類型的引用,而不是引用的對象,在副本中對引用類型的字段值做修改會影響到源對 象本身。!= x。例子代碼如下:[java] view plaincopy1. classObject16. }static26. StringintProfessor(String9. }age,Professor}clone(){23. e){30. 32. publics1=new38. (name=++,+age=+)。2. class7. =age。15. }implementsname。age。p。name,intObject32. }catch(CloneNotSupportedException//調(diào)用Professor類的clone()方法實現(xiàn)深拷貝Student45. 46. (name=++,+age=+)。ObjectObjectOutputStream(bo)。7. ByteArrayInputStream上例代碼改進如下。13. 14. 15. 16. =name。implementsname。age。p。name,intObjectbo=newObjectOutputStream/ByteArrayInputStream39. publics1=new45. (name=++,+age=+)。Builder設(shè)計模式 Builder建造者模式將一個復(fù)雜對象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。=}build()12. ()。20. 21. run()。piling”)。pressing”)。running”)。main(String[]} 3. sql)。implementsstatic10. ==DRIVERURLStringroot。23. catchconn寫入驅(qū)動所在處,打開驅(qū)動private=jdbc:mysql://localhost:3306/test。connFacade門面設(shè)計模式結(jié)構(gòu)如下:以JDBC為例演示Facade門面設(shè)計模式:[java] view plaincopy1. //JDBC50. Director47. voidBuildervoidBuildervoidBuilderclass23. publicBuilder}()。10. 7. privateDirector()Builder建造者設(shè)計模式中有兩個重要角色:Director指導(dǎo)者和Builder建造者。Studentvoidreturn(())。oi=newByteArrayInputStream(())。/從流里讀出來//ObjectOutputStream(bo)。throws=p。27. p){}return(())。oi=newByteArrayInputStream(())。6. 4. Student(zhangsan,18,p)。42. static=(Professor)()。36. }34. =p。26. p){}return16. o=null。name,intage。name。implementsStudentvoid25. Student21. 20. 15. 14. 13. 10. //Student實現(xiàn)了Cloneable接口8. age){Professor
點擊復(fù)制文檔內(nèi)容
語文相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1