兩種設計模式(單例 簡單工廠)

一.設計模式設計模式

1.什麼是設計模式優化

2.爲何用設計模式spa

3.何時使用設計模式設計

4.怎樣用設計模式code

二.單例模式對象

1.單例模式,是一種經常使用的軟件設計模式。在它的核心結構中只包含一個被稱爲單例的特殊類。blog

經過單例模式能夠保證系統中,應用該模式的類一個類只有一個實例。即一個類只有一個對象實例。內存

優勢開發

1、實例控制
單例模式會阻止其餘對象實例化其本身的單例對象的副本,從而確保全部對象都訪問惟一實例。
2、靈活性
由於類控制了實例化過程,因此類能夠靈活更改實例化過程。

缺點get

1、開銷
雖然數量不多,但若是每次對象請求引用時都要檢查是否存在類的實例,將仍然須要一些開銷。能夠經過使用靜態初始化解決此問題。
2、可能的開發混淆
使用單例對象(尤爲在類庫中定義的對象)時,開發人員必須記住本身不能使用new關鍵字實例化對象。由於可能沒法訪問庫源代碼,所以應用程序開發人員可能會意外發現本身沒法直接實例化此類。
3、對象生存期
不能解決刪除單個對象的問題。在提供內存管理的語言中(例如基於.NET Framework的語言),只有單例類可以致使實例被取消分配,由於它包含對該實例的私有引用。在某些語言中(如 C++),其餘類能夠刪除對象實例,但這樣會致使單例類中出現懸浮引用。。

2.如何保證一個類有一個實例:

1)將公有無參構造改爲私有

  private Play(){}

2)寫一個 私有的 靜態的 類類型的 成員變量

   private static Play play=null;

3)寫一個公有的 靜態的 返回值爲 類類型的 方法

public static Play GetInstance()

{

     if(play==null)
    {    
    paly
=new Play(); }     return play; }


三.簡單工廠模式

1.

簡單工廠模式是屬於建立型模式,又叫作靜態工廠方法(Static Factory Method)模式,但不屬於23種GOF設計模式之一。簡單工廠模式是由一個工廠對象決定建立出哪種產品類的實例。簡單工廠模式是工廠模式家族中最簡單實用的模式,能夠理解爲是不一樣工廠模式的一個特殊實現。
 

簡單工廠模式優缺點

編輯

優勢

工廠類是整個模式的關鍵.包含了必要的邏輯判斷,根據外界給定的信息,決定究竟應該建立哪一個具體類的對象.經過使用工廠類,外界能夠從直接建立具體產品對象的尷尬局面擺脫出來,僅僅須要負責「消費」對象就能夠了。而沒必要管這些對象究竟如何建立及如何組織的.明確了各自的職責和權利,有利於整個軟件體系結構的優化。

缺點

因爲工廠類集中了全部實例的建立邏輯,違反了高內聚責任分配原則,將所有建立邏輯集中到了一個工廠類中;它所能建立的類只能是事先考慮到的,若是須要添加新的類,則就須要改變工廠類了。

當系統中的具體產品類不斷增多時候,可能會出現要求工廠類根據不一樣條件建立不一樣實例的需求.這種對條件的判斷和對具體產品類型的判斷交錯在一塊兒,很難避免模塊功能的蔓延,對系統的維護和擴展很是不利;

這些缺點在工廠方法模式中獲得了必定的克服。

使用場景

工廠類負責建立的對象比較少;

客戶只知道傳入工廠類的參數,對於如何建立對象(邏輯)不關心;

因爲簡單工廠很容易違反高內聚責任分配原則,所以通常只在很簡單的狀況下應用

相關文章
相關標籤/搜索