1. 程式人生 > >由hibernate中學習工廠模式

由hibernate中學習工廠模式

有兩種形式,工廠方法和抽象工廠:
工廠方法:
protected ConnectionProvider createConnectionProvider(Properties properties) {
     //利用工廠方法產生一個新例項,properties是讀取配置檔案後生成儲存在記憶體的屬性對
          return ConnectionProviderFactory.newConnectionProvider(properties);}
具體的工廠方法
public static ConnectionProvider newConnectionProvider(Properties properties)
			throws HibernateException {
		ConnectionProvider connections;
                      //根據配置的內容(而不是寫死在程式碼中),生成新的例項
		String providerClass = properties.getProperty( Environment.CONNECTION_PROVIDER );
		if ( providerClass != null ) {
			connections = initializeConnectionProviderFromConfig( providerClass );
		}
		else if ( c3p0ConfigDefined( properties ) && c3p0ProviderPresent() ) {
			connections = initializeConnectionProviderFromConfig("org.hibernate.connection.C3P0ConnectionProvider");
		}
		else if ( properties.getProperty( Environment.DATASOURCE ) != null ) {
			connections = new DatasourceConnectionProvider();
		}
		else if ( properties.getProperty( Environment.URL ) != null ) {
			connections = new DriverManagerConnectionProvider();
		}
		else {
			connections = new UserSuppliedConnectionProvider();
		}
		//利用properties,對新生成的例項進行初始化
		connections.configure( properties );
		return connections;
	}

總結:靈活多變,程式碼未寫死,可以在配置檔案中靈活改變具體內容,並且在生成物件時進行框架邏輯上的控制。滿足了生成例項物件多樣化的同時還達到了對一類物件的初始化時的靈活性

抽象工廠:
某一類工廠有一系列的產品,各個工廠生產不同的系列(nike和adidas都生產衣服,鞋,球),通過不同的具體工廠new出不同的系列產品(nike工廠new出的是nike衣服,nike鞋,nike球),例如在軟體的面板功能中,通過更改具體的面板工廠,程式中new出的就是不同的面板主題(青春工廠:青春按鈕,青春標題欄,青春邊框&&成熟工廠:成熟按鈕,成熟標題欄,成熟邊框)

相關推薦

hibernate學習工廠模式

有兩種形式,工廠方法和抽象工廠:工廠方法:protected ConnectionProvider createConnectionProvider(Properties properties) { //利用工廠方法產生一個新例項,properties是讀取配置檔

PHP“簡單工廠模式”實例講解

超過 case 十個 ssa 技術 實例 not 強烈 .... 原創文章,轉載請註明出處:http://www.cnblogs.com/hongfei/archive/2012/07/07/2580776.html 簡單工廠模式: ①抽象基類:類中定義抽象一些方法,用

設計模式學習——工廠模式(Factory Pattern)

cto ret cas .exe on() 生產 delet 基礎 names 1、有一個工廠,專門生產不同品牌的汽車。當有人需要從此工廠提貨的時候,只需要告訴他,要什麽品牌的,就可以了,並不關心這些車是怎麽生產出來的。 2、以上方式,如果增加品牌的時候,也要修改工廠,有點

Java工廠模式

ride 依賴倒轉原則 spa 接口隔離 負責 展開 具體實現 sta 開放 設計模式遵循原則 開閉原則:對擴展開放,對修改關閉 裏氏代換原則:只有當衍生類可以替換掉基類,軟件單位的功能不受到影響時,基類才能真正被覆用。而衍生類也能夠在基類的基礎上增加新的行為 依賴倒轉原

Java學習——工廠模式

工廠設計模式 目的:將客戶端的new操作解耦到第三方(工廠類) 假設我有一天想買一個電腦,有surface pro和macbook pro我很喜歡,根據這個場景,可以設計出如下程式碼: interface Computer{ void printComputerType(); }

Spring工廠模式

1.  核心思想:例項化物件; 2.  場景:      2.1多例物件的建立;(用一個new一個);     2.2有些物件(介面、抽象類)不能直接例項化;       介面--->代理             抽象類----->建立子類     2.3需要對物件進行二次封

設計模式學習——工廠模式

工廠模式有幾種不同方式:簡單工廠模式、工廠方法模式、抽象工廠模式。用來統一管理不同產品的建立。 簡單工廠模式 定義:屬於類的創新型模式,又稱靜態工廠方法模式,通過專門定義一個類來負責建立其他類的例項,

大話設計模式簡單工廠模式的計算器例項的C++程式碼

這裡只是實現了加減乘除,和書中的C#實現的方法基本相似。 #include <iostream> #include <string> using namespace std; //Operation運算類 class Operation { pr

Android工廠模式

什麼是工廠模式? 顧名思義,就是專門用來建立物件的工廠,這裡的物件指的是具有相同介面的類的物件。工廠模式可以決定將哪一個類進行例項化,不必事先知道每次要例項化的是哪一個類。 工廠模式有以下三種形態: 1、簡單工廠模式:又稱為靜態工廠方法模式。 2、工廠方

設計模式入門學習 工廠模式

  先讀一本設計模式入門書,深入淺出設計模式,之後再拜讀一下GOF設計模式。   工作也有兩年時間了,說設計模式接觸的應該比較多了,只是一直沒有進行系統的整理。說起來,剛入職做Webkit這讓我有一個比較高的技術起點,技術視界也比較寬廣。抓時間系統過一遍設計模式,探究下編碼

大話設計模式簡單工廠模式和策略模式的商場收銀軟體例項的C++程式碼

策略模式是一種定義一系統演算法的方法,從概念上來看,所有這些演算法完成的都是相同的工作,只是具體的實現不同;策略模式可以以相同的方式呼叫所有的演算法,減少了各種演算法類與使用演算法類之間的耦合。 策略模式是用來封裝演算法的,但在實踐中,我們發現可以用它來封裝幾乎任何型別的規

springFactoryBean工廠模式使用

一、簡介 FactoryBean是spring中工廠模式的實現,可以通過配置建立不同的物件。 通常可用在基於不同配置產生不同物件場景中,如資料庫連線(線上、測試環境連線引數不一樣)。二、FactoryBean<T>原始碼 package org.springfr

設計模式(二)--- java工廠模式

工廠模式 簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法(Static Factory Method)模式,但不屬於23種GOF設計模式之一。簡單工廠模式是由一個工廠物件決定創建出哪一種產品類的例項。簡單工廠模式是工廠模式家族中最簡單實用的模式,可以理解為是不同工廠模式的一個特殊實現。

從原始碼學習設計模式系列——單例模式序/反序列化以及反射攻擊的問題(二)

一、前言 這篇文章是學習單例模式的第二篇,之前的文章一下子就給出來看起來很高大上的實現方法,但是這種模式還是存在漏洞的,具體有什麼問題,大家可以停頓一會兒,思考一下。好了,不賣關子了,下面我們來看看每種單例模式存在的問題以及解決辦法。 二、每種Singleton 模式的演進  模式一

JAVA工廠模式和單例模式講解

轉載:http://blog.csdn.net/fangleijiang/article/details/19912667 1.單例模式 單例模式是一種常用的軟體設計模式。在它的核心結構中只包含一個被稱為單例類的特殊類。通過單例模式可以保證系統中一個類只有一個例項而且該例

java設計模式工廠模式

工廠模式:主要用來例項化有共同介面的類,工廠模式可以動態決定應該例項化那一個類。工廠模式的形態 工廠模式主要用一下幾種形態: 1:簡單工廠(Simple Factory)。 2:工廠方法(Factory Method)。 3:抽象工廠(Abstract Factory)。簡

從BWM生產學習工廠模式

工廠模式應用非常之廣,在JDK底層原始碼以及各大主流框架中隨處可見,一般以Factory結尾命名的類,比如Mybatis中的SqlSessionFactory,Spring中的BeanFactory等,都是工廠模式的典型代表。 一、簡單工廠模式 1.1 概念 簡單工廠模式又稱為靜態工廠模式,屬於設計模式中的建

「補課」進行時:設計模式(5)——從 LOL 學習代理模式

![](https://cdn.geekdigging.com/DesignPatterns/java_design_pattern.jpg) ## 1. 前文彙總 [「補課」進行時:設計模式系列](https://www.geekdigging.com/category/%e8%ae%be%e8%ae%

在面試通過工廠模式來證明自己的能力

     在面試中,候選人經常會被問到,你在專案裡用到過哪些設計模式?對此,你可以按本文給出的步驟,系統地通過工廠模式展示自己在設計思想方面的能力。     1 通過工廠模式遮蔽建立細節     工廠模式(Factory Meth

Hibernate配置文件的學習

java itcast 描述 字段 dialect 2.3 map 評論 添加 首先我們看一下hibernate的主配置文件 1 <!DOCTYPE hibernate-configuration PUBLIC 2 "-//Hibernate/Hiber