實現思路:將構造方法私有化 宣告本類型別的靜態私有屬性 提供共有靜態方法獲取 本類物件
class ***
static *** x=new ***();
public static *** get***()
}
class ***
static *** x = null;
public static *** get***()
}
優點:
缺點:**:
//產品介面
public inte***ce produceinte***ce
//產品類——1
public class produceclass_1 implements produceinte***ce
}//產品類——2
public class produceclass_2 implements produceinte***ce
}//工廠類
public class factoty_1
}}//測試**
public class test_1
}
優點:通過工廠對產品進行加工和生產 對細節進行隱藏
缺點:如果需要生產新的產品 需要修改原始碼 **耦合度高 不符合開閉原則
**:
沿用上面的產品類
//工廠藉口
public inte***ce factoryinte***ce
//工廠類——1
public class factoryclass_1 implements factoryinte***ce
}//工廠類-2
public class factoryclass_2 implements factoryinte***ce
}//測試類
public class test
}
優點(和簡單工廠比改善的地方):可擴充套件性變好了 需要增加產品時 不需要修改原始碼 只需要通過實現工廠介面去新增工廠類 符合設計原則中的開閉原則 同時又保持了對物件建立過程的封裝
缺點:增加一種產品就需要增加一種工廠 增加了開發時間成本
**:
//產品介面
public inte***ce electrickettle
//具體產品類----1
public class electrickettleclass_1 implements electrickettle
}//具體產品類-------2
public class electrickettleclass_2 implements electrickettle
}//抽象工廠介面
public inte***ce factoryinte***cer
//具體工廠--------1
package com.briup.base.factory._3;
public class _1factory implements factoryinte***cer
@override
public electrickettle createkettle()
@override
public refrigerator createrefrigerator()
}//具體工廠----------2
package com.briup.base.factory._3;
public class _2factory implements factoryinte***cer
@override
public electrickettle createkettle()
@override
public refrigerator createrefrigerator()
}//客戶端**
package com.briup.base.factory._3;
public class client
}
優點:和工廠方法相比 減少了工廠類的個數 出現類產品組的概念 同乙個工廠類中生產的產品屬於乙個產品組 (同一品牌下 的不同商品)
缺點:介面中的方法變多了 介面的隔離性自然也就變低了 實現介面後必須重寫其中的所有方法 介面變得笨重 增加了類與類間 耦合度
單例模式 工廠模式
單例模式 一 什麼是單例模式 有時候我們會遇到這樣一種情況,乙個類只能有乙個物件被例項化,這時我們就可以使用單例模式了。單例模式通過類本身來管理其唯一例項。在設計這個類的時候,讓他只能建立乙個例項並提供對此例項的全域性訪問。因此單例模式有兩個最基本的條件是,確保乙個類只有乙個例項被建立,提供乙個對例...
工廠模式 單例模式
一.單例模式介紹 單例類只能有乙個例項。單例類必須自己建立自己的唯一例項。單例類必須給所有其他物件提供這一例項。二.單例模式分為 4 雙重檢驗 這是最優的執行緒安全 即使用於單執行緒又適用於多執行緒 第乙個進來的時候,判斷為空,然後加鎖,繼續判斷為空,如果開闢了空間之後,還沒有去賦值,這時候有其他執...
單例模式 工廠模式
單例 package com.enorth.user public class singleton public static singleton getinstance return singleton 簡單工廠 產品介面 public inte ce product 具體產品a public c...