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

正文內容

淺析java常用的設計模式-wenkub.com

2025-06-27 06:51 本頁面
   

【正文】 小結簡單工廠模式和工廠方法模式可以看作是抽象工廠模式特例,當我們把簡單工廠模式中的實際工廠抽象出一個抽象工廠時,它就變成了一個工廠方法模式;當我們把工廠方法模式的產品等級變得更多一些,形成產品族的時候,它又能成為一個抽象工廠模式。同樣我們可以形成工廠族來避免這些問題。 可以清楚的發(fā)現,該具體工廠僅僅負責所有產品族的各1種產品。} return{ 8. ProductA1()。 6. ProductA 5. implements具體的生產交給具體工廠去實現。ProductA抽象工廠模式,首先抽象出所有產品族的生產方法:java 代碼1. public這里真正引入了產品族、工廠族的概念。如果引入產品族的概念,即有多個抽象產品,那么就必須對應不同的抽象產品形成不同的抽象工廠層,這會打破工廠的獨立性,乃至形成一個龐大的工廠族。也就是原本的靜態(tài)類變成了一個抽象類或接口,而將制造的任務交給底下的具體實現類來完成。相應的,工廠也可以分為多個工廠,各自負責不同種類的產品即抽象類。 69. } 70. } 71. 以上給出的答案中,使用了模板方法模式,在QueryRunner中,run()方法就是一個模板方法,這個方法代表一個頂極邏輯:返還產尋的結果ResultSet 《Java與模式》之工廠模式學習Facotry Pattern包括了三種形態(tài)1. Simple Factory 2. Factory Method 3. Abstract Factory 下面分別進行學習Simple Factory簡單工廠模式往往是普通工廠模式的一個特例。 57. } 58. } 59. 60. //客戶端 61. import 。 44. 45. public class OracleQueryRunner extends QueryRunner{ 46. public Connection createConnection(){ 47. return null。 36. return (sql)。 23. import 。 16. protected abstract String createSql()。 8. 9. public abstract class QueryRunner{ 10. public ResultSet run() throws Exception{ 11. Connection conn = createConnection()。 在特殊情況下,工廠方法僅僅返還一個具體產品類型,這個時候工廠方法模式的功能就退化了,表現為針對產品角色的多態(tài)性的喪失,客戶端從工廠方法的靜態(tài)類型可以知道將要得到的是什么類型的對象,而這違背了工廠方法模式的用意 與其他模式的關系 模板方法模式 工廠方法模式常常與模板方法模式一起聯合使用,其原因有二: 一、兩個模式都是基于方法的,工廠方法模式是基于多態(tài)性的工廠方法的,而模板方法模式是基于模板方法和基于方法的 二、兩個模式的哦將具體工作交給子類,工廠方法模式將創(chuàng)建工作推延給子類,模板方法模式將生于邏輯交給子類 MVC模式 工廠方法模式總是設計到兩個等級結構中的對象,而這兩個等級結構可以分別是MVC模式中的控制器和視圖。 } public static void log(String msg){ (msg)。 } //具體產品角色(蘋果類) public class Apple implements Fruit{ private int treeAge。 } } //......(葡萄園?。? public class GrapeGardener implements FuritGardener{ public Fruit factory(){ return new Grape()。 58. } 59. 60. public void setTreeAge(int treeAge){ 61. = treeAge。 42. } 43. 44. public void harvest(){ 45. log(Apple has been harvested.)。 32. void harvest()。 6. } 7. 8. //具體工廠類(蘋果園?。? 9. public class AppleGardener implements FruitGardener{ 10. public Fruit factory(){ 11. return new Apple()。 prod1 = ()。 } } public class ConcreteCreator2 implements Creator{ //工廠方法 public Product factory(){ return new ConcreteProduct2()。 49. creator2 = new ConcreteCreator2()。 25. } 26. } 27. 28. //具體產品(角色)類 29. public class ConcreteProduct1 implements Product{ 30. public ConcreteProduct1(){ 31. //do somthing 32. } 33. } 34. 35. public class ConcreteProduct2 implements Product{ 36. public ConcreteProduct2(){ 37. //do somthing 38. } 39. } 40. 41. //客戶端(角色)類 42. public class Client{ 43. private static Creator creator1,creator2。 3) 抽象產品角色:工廠方法模式所創(chuàng)建的對象的超類型,也就是產品對象的共同父類或共同擁有的接口, 在實際應用中,這個角色也常常使用抽象java類實現 4) 具體產品角色:這個角色實現了抽象產品角色所聲明的接口。 這一缺點會在工廠方法模式中得到克服 “開——閉”原則要求一個系統(tǒng)的設計能夠允許系統(tǒng)在無需修改的情況下,擴展其功能。 而客戶端則可以免除直接創(chuàng)建產品對象的責任,而僅僅負責“消費”產品。 MVC模式:是更高層次上的架構模式。 其他模式。 每一次客戶端調用工廠方法時,工廠方法總是提供這同一個對象。 (banana)。 } } //測試類 public class Test{ FruitGardener gardener =new FruitGardener()。 }else if((grape)){ return new Grape()。 } public void harvest(){ log(Strawberry has been harvested.)。 } public static void log(String msg){ (msg)。 } } //葡萄類 public class Grape implements Fruit{ private boolean seedless。 } public void plant(){ log(Apple has been planted.)。 //生長 void harvest()。 118. (banana)。 108. } 109. } 110. 111. //測試類 112. public class Test{ 113. FruitGardener gardener =new FruitGardener()。 94. }else if((grape)){ 95. return new Grape()。 73. } 74. 75. public void harvest(){ 76. log(Strawberry has been harvested.)。 53. } 54. 55. public static void log(String msg){ 56. (msg)。 36. } 37. } 38. 39. //葡萄類 40. public class Grape implements Fruit{ 41. private boolean seedless。 19. } 20. 21. public void plant(){ 22.
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1