亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

什么是靜態工廠方法?

什么是靜態工廠方法?

慕碼人2483693 2019-06-28 15:51:05
什么是靜態工廠方法?什么是“靜態工廠”方法?
查看完整描述

3 回答

?
慕婉清6462132

TA貢獻1804條經驗 獲得超2個贊

我們避免直接訪問數據庫連接,因為它們是資源密集型的。所以我們使用靜態工廠方法getDbConnection如果我們低于極限,就會產生連接。否則,它試圖提供“備用”連接,如果沒有異常,則失敗。

public class DbConnection{
   private static final int MAX_CONNS = 100;
   private static int totalConnections = 0;

   private static Set<DbConnection> availableConnections = new HashSet<DbConnection>();

   private DbConnection(){
     // ...
     totalConnections++;
   }

   public static DbConnection getDbConnection(){

     if(totalConnections < MAX_CONNS){
       return new DbConnection();

     }else if(availableConnections.size() > 0){
         DbConnection dbc = availableConnections.iterator().next();
         availableConnections.remove(dbc);
         return dbc;

     }else {
         throw new NoDbConnections();
     }
   }

   public static void returnDbConnection(DbConnection dbc){
     availableConnections.add(dbc);
     //...
   }}


查看完整回答
反對 回復 2019-06-28
?
慕容708150

TA貢獻1831條經驗 獲得超4個贊

注意!“靜態工廠法工廠法模式“(C)有效的Java,約書亞·布洛赫。

工廠方法:“定義用于創建對象的接口,但讓實現接口的類決定實例化哪個類。Factory方法允許類將實例化推遲到子類”(C)Gof。

“靜態工廠方法只是一個返回類實例的靜態方法?!?C)有效的Java,約書亞·布洛赫。通常這種方法在特定的類中。

不同之處:

靜態工廠方法的核心思想是控制對象的創建,并將其從構造函數委托給靜態方法。要創建的對象的決策類似于在方法之外所做的抽象工廠(在普通情況下,但并非總是如此)。而鑰匙(!)工廠方法的思想是委托決定在工廠方法中創建哪個類的實例。例如,經典的Singleton實現是靜態工廠方法的特例。常用的靜態工廠方法示例:

  • 價值
  • getInstance
  • 新情況


查看完整回答
反對 回復 2019-06-28
  • 3 回答
  • 0 關注
  • 1741 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號