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

正文內(nèi)容

java程序設(shè)計(jì)模式程序設(shè)計(jì)(留存版)

2024-10-26 17:53上一頁面

下一頁面
  

【正文】 ct String replace()。 Factory 設(shè)計(jì)模式 Factory 工廠設(shè)計(jì)模式為創(chuàng)建對象提供了一種抽象,而對使用者屏蔽了對象創(chuàng)建的具體細(xì)節(jié)過程,工廠模式有三種:簡單工廠模式,抽象工廠模式和工廠方法模式。 28. } 29. } 30. //軟件 Color 31. interface Color(){ 32. public void showColor()。 工廠方法模式例子如下: [java] view plaincopy 1. //汽車接口 2. interface ICar{ 3. public void run()。工廠模式返回的實(shí)例可以不是新創(chuàng)建的,返回由工廠創(chuàng)建好的實(shí)例也是可以的。 30. (())。一般而言, clone()方法滿足下面規(guī)范: ① 對任何的對象 x,都有 () != x。 22. Student s2=(Student)()。 17. =age。 7. =age。 38. } 39. } 40. public static void main(String[] args){ 41. Professor p=new Professor(wangwu,50)。 12. class Professor implements Serializable{ 13. String name。 38. } 39. public static void main(String[] args){ 40. Professor p=new Professor(wangwu,50)。 10. ()。 35. } 36. public void press(){ 37. (“Java Builder is pressing”)。例子代碼如下: [java] view plaincopy 1. // Director 指導(dǎo)者角色 2. class Director() { 3. private Builder builder。 33. (this)。 8. ObjectInputStream oi=new ObjectInputStream(bi)。 30. try{ 31. o=(Student)()。 38. //學(xué)生 1 的教授也變成了 lisi,age 為 30 39. (name=++,+age=+)。//常量對象。 11. try{ 12. //Object 中的 clone()識別出你要復(fù)制的是哪一個對象 13. o=(Student)()。 (2)深拷貝(深克?。? 將對象中的所有字段復(fù)制到新的對象中。 18. } 19. } 20. //具體原型類 21. publc class Circle extends Shape{ 22. public Circle(){ 23. setShapeName(“Circle shape”)。 41. } 42. } 工廠模式中,重要的是工廠類,而不是 產(chǎn)品類。 76. ()。 6. } 7. public void setSkinFactory(SkinFactory factory){ 8. = factory 9. } 10. public void showSkin(){ 11. (“Style=” + ().showStyle() + “, color=” + lor().showColor())。 39. (new StrategyOne(testText2))。 (3).為容器或其子容器提供了一個統(tǒng)一接口,一方面方便調(diào)用;另一方面使得調(diào) 用者不必關(guān)注迭代器的實(shí)現(xiàn)細(xì)節(jié)。 6. } 7. //容器迭代化接口,凡是實(shí)現(xiàn)此接口的集合容器距可以生成相應(yīng)的迭代器 8. public interface IterableT{ 9. //產(chǎn)生迭代器,將容器對象轉(zhuǎn)換為迭代器對象 10. IteratorT interator()。 70. (new Implementation2())。 26. } 27. public void operation3(){ 28. (“()”)。 14. } 15. } 16. private State state = new F()。動態(tài)帶來自定義 Handler 實(shí)現(xiàn) InvocationHandler 接口,自定義Handler實(shí)例化時,將代理的實(shí)現(xiàn)類傳入自定義 Handler對象中。 11. } 12. public void g(int i) { 13. (“(), i=” + i)。 9. public Proxy(){ 10. //目標(biāo)程序 11. implementation = new ProxyImplementation()。 14. } 15. } 一般認(rèn)為飽漢模式要比餓漢模式更加安全。 上面兩種 Singleton 單類設(shè)計(jì)模式的實(shí)現(xiàn)方式都隱藏有如下的問題: (1).雖然構(gòu)造方式的訪問修飾符為 private,即除了自身以外其他任何類都無法調(diào)用,但是通過反射機(jī)制的 setAccessiable(true)方法可以訪問私有方法和屬性。 12. } 13. public void f(){ 14. ()。 14. } 15. public void h(int i, String s) { 16. (“(), i=” + i + “, s=” + s)。自定義 Handler需要實(shí)現(xiàn) invoke 方法,該方法可以使用 Java 反射調(diào)用實(shí)現(xiàn)類的實(shí)現(xiàn)的方法,同時當(dāng)然可以實(shí)現(xiàn)其他功能,例如在調(diào)用實(shí)現(xiàn)類方法前后加入 Log,實(shí)現(xiàn)安全認(rèn)證等。 17. public void greet(){ 18. ()。 29. } 30. } 31. //服務(wù)提供者 32. class ServiceProvider{ 33. private State state。 71. (sp)。 11. } 12. //java 集合框架的根接口,該接口繼承了容器迭代化接口,因此 java 中的集合都可以被迭代 13. public interface CollectionE extends IterableE 自定義迭代器,以 ArrayList 為自定義迭代容器的底層數(shù)據(jù)結(jié)構(gòu),實(shí)現(xiàn)自定義迭代器的代碼如下: [java] view plaincopy 1. public class MyIterator implements Iterable { 2. //存放數(shù)據(jù)的集合 3. private ArrayList list。 (4).可以為容器或其子容器實(shí)現(xiàn)不同的迭代方法或多個迭代方法。 40. (new StrategyTwo(testText1))。 12. } 13. } 14. //軟件 Style 15. interface Style(){ 16. public void showStyle()。 77. } 78. } 抽象工廠指定了產(chǎn)品組合形式,具體的工廠產(chǎn)生具體的產(chǎn)品,抽象工廠適用于多個產(chǎn)品相互組合的情況。產(chǎn)品類可以是多種形式,多層繼承或者是單個類都是可以的。 24. } 25. public static void main(String[] args){ 26. Shape shape = new Circle()。不過,無論是對象的值類型字段,還是引用類型字段,都會被重新創(chuàng)建并賦值,對于副本的修改,不會影響到源對象本身。 14. }catch(CloneNotSupportedException e){ 15. (())。 13. int age。 40. } 那應(yīng)該如何實(shí)現(xiàn)深層次的克隆,即修改 s2的教授不會影響 s1的教授?代碼改進(jìn)如下: [java] view plaincopy 1. //Professor 類實(shí)現(xiàn)了 Cloneable 接口,不再使用 Object 默認(rèn)的 clone()方法 2. class Professor implements Cloneable{ 3. String name。 32. }catch(CloneNotSupportedException e){ 33. (())。 9. return(())。// object of stud 34. / /從流里讀出來 35. ByteArrayInputStream bi=new ByteArrayInputStream(())。 4. public Director(Builder builder){ 5. = builder。 38. } 39. public void encrypt(){ 40. (“Java Builder is encrypting”)。 9. ()。 37. return(())。上例代碼改進(jìn)如下。 37. return o。 5. Professor(String name,int age){ 6. =name。 15. Student(String name,int age,Professor p){ 16. =name。 18. } 19. } 20. public static void main(String[] args){ 21. Student s1=new Student(zhangsan,18)。 2. Java 中的 clone()方法 (1)clone()方法將對象復(fù)制了一份并返回給調(diào)用者。 28. //通過 clone()方法獲得一個對象拷貝 29. Shape shape2 = (Shape)()。 使用工廠模式,返回的實(shí)例一定是工廠創(chuàng)建的,而不是從其他對象中獲取的。工廠方法定義一個用于創(chuàng)建產(chǎn)品的接口,讓子類決定實(shí)例化哪一個類,使得類的實(shí)例化延遲到子類。 22. } 23. } 24. //Android style 25. class AndroidStyle implements Style{ 26. public void showStyle(){ 27. (“This is Android style”)。 (2).Strategy 策略模式重點(diǎn)在于根據(jù)需求直接采用設(shè)定的策略,即根據(jù)場景選擇合適的處理算法,而不需要改變狀態(tài)。 4. 5. public TextStrategy(String text) { 6. = text。 7. } 8. //作為內(nèi)部類的具體迭代器角色 9. private class Itr implements Iterator { 10. ArrayList myList。 (2).Proxy 代理模式的目的是控制客戶端對目標(biāo)程序的訪問,而 State 狀態(tài)模式是為了根據(jù)條件動態(tài)改變目標(biāo)程序。 36. } 37. //狀態(tài)更改 38. public void changeState(State newState){ 39. state = newState。 22. } 23. public static void main(String[] args){ 24. Creature creature = new Cr
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1