建立型設計模式

2021-07-25 04:34:44 字數 2526 閱讀 6980

設計模式分為總的來說分為三大類

建立型模式:五種,工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式

結構型模式:七種,介面卡模式、裝飾器模式、**模式、外觀模式、橋接模式、組合模式、享元模式

行為模式:十一種,策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介模式、直譯器模式

首先介紹建立模式,建立模式主要是在建立物件時運用到的設計模式

****************************工廠方法模式,顧名思義就是像工廠一樣建立出大量的物件***********************

//普通工廠模式//

//產品介面1

public inte***ce iproduce  

//產品1實現類:

public class cproduce1 implements iproduce  

}  //產品2實現類:

public class cproduce2 implements iproduce  

} //建工廠類:

public class producefactory else if (type == 2) else  

}  }  

//測試類:

public class factorytest  

}  多種產品繼承產品介面,然後通過產品工廠根據需要的型別返回對應的產品

//多個工廠方法模式//

//建工廠類:產品1的工廠

public class producefactory1  

}  //建工廠類:產品2的工廠

public class producefactory2  

} //測試類:

public class factorytest  

}  多個工廠方法模式即一種產品對應乙個工廠,分開生產

//靜態工廠模式//

//建工廠類:

public class producefactory else if (type == 2) else  

}  }  

//測試類:

public class factorytest  

}  靜態工廠方法就是將工廠的建立方法設定為靜態,可以不用每次生產時都建立工廠類,直接用靜態方法呼叫,減少工廠類構造與析構的開銷

****************************抽象工廠模式***********************

當產品中設計到多種分類時,不是繼承同乙個介面,多種產品就得用到抽象工廠,建立多個工廠類,簡單工廠中也有一種多個工廠方法模式,但是他是只有一條產品線都是繼承iproduce,抽象工廠有多種產品基類

//產品介面1

public inte***ce iproduce  

//產品1實現類:

public class cproduce1 implements iproduce  

}  //產品介面2

public inte***ce iproduce2 

//產品2實現類:

public class cproduce2 implements iproduce2  

} //建產品1工廠類:

public class producefactory  

}  //建產品2工廠類:

public class producefactory2  

}//測試類:

public class factorytest  

}  ****************************單例模式***********************

單例模式即保證該物件只有乙個例項存在,不用頻繁的建立與銷毀物件

public class singleton    

/* 靜態方法,建立例項 */  

public static singleton getinstance()  

return instance;  

}       

****************************建造者模式***********************

當乙個例項需要多個元件組成,即將多種功能集中到乙個類中,可以使用建造者模式

//建造者類

public class builder  

}        

public void produce2(int count)  

}  } 

//測試類:

public class test  

}  ***************************原型模式***********************

即拷貝乙個物件,拷貝分為淺拷貝與深拷貝,淺拷貝的引用型別與指標沒有重新構建新的記憶體空間,指向原來的位址,深拷貝則有新的位址空間指向新的位址

//拷貝介面

public inte***ce iclone

//實現類

public class cclone 

}

建立型設計模式

建立型設計模式對類的建立例項化過程進行抽象,將物件的建立和物件的使用分離。簡單工廠模式 使用頻率4星 工廠方法模式 使用頻率5星 抽象工廠模式 使用頻率5星 建造者模式 使用頻率2星 原型模式 使用頻率3星 單例模式 使用頻率4星 toc 簡單工廠模式將物件建立和物件使用相分離,降低了系統耦合度。優...

建立型 設計模式

單例 單例項,自我例項化,提供全域性訪問點 工廠 不同型別例項由不同工廠建立,當然也有通過乙個靜態方法建立一種例項或通過傳入引數決定生產的例項 這兩種很明顯不方便擴充套件,需修改 抽象工廠 考慮物件有不同維度 如車有型別和顏色 那麼工廠負責產生一類產品 如工廠產生紅車,白車,黑車 那麼型別上可以通過...

設計模式 建立型

原型模式 工廠模式分為三種更加細分的型別 靜態工廠 工廠方法 抽象工廠 靜態工廠 工廠方法的原理比較簡單,在實際的專案中也比較常用。而抽象工廠的原理稍微複雜點,在實際的專案中相對也不常用 了解即可 工廠模式的好處 1 將建立物件的事交給工廠,客戶端不用自己建立物件,明確了各個類的職責 2 如果有新的...