1. 程式人生 > >java中代理設計模式與工廠類設計模式的綜合應用

java中代理設計模式與工廠類設計模式的綜合應用

package cn.mdln.study2;


public class TestDemo11 {
/**
 * 主方法是客戶端,只關心取得通過工廠類取得例項化物件,不關係到底工廠類如何取得,
 * 更不會關係主題類是如何例項化介面的,才不會關中間有經歷過那寫不為人知的操作
 * 總而言之:主方法不應該做太多有關內部操作,只需要結果即可(即也就是取得例項化的介面物件)
 * 代理設計模式與工廠類設計模式的應用
 * @throws Exception 
 */


public static void main(String[] args) throws Exception {
IDeptSevice ideptsevice=FactoryDeptSevice.getIDeptSeviceInstance();
ideptsevice.insert();


}


}
interface IDeptSevice //業務層介面(所有代理層,都是為業務層服務)
{
public boolean insert()throws Exception;
}
class DeptSeviceImpl implements IDeptSevice//真實主題實現類
{


@Override
public boolean insert() throws Exception {

System.out.println("*****呼叫資料層諾幹操作");

return true;
}
}
class DeptSeviceProxy implements IDeptSevice//代理主題類:(代理類負責真實主題類與其它之間的呼叫)
{
   private IDeptSevice deptsevice;
   public DeptSeviceProxy(IDeptSevice deptsevice)
   {
  this.deptsevice=deptsevice;
   }
   public void prepare()
   {
  System.out.println("****操作前的準備,開啟資料庫連線操作");
   }
@Override
public boolean insert() throws Exception {
prepare();
boolean flag=deptsevice.insert();
destory();
return flag;
}
public void destory()
{
System.out.println("****操作後的準備,關閉資料庫連線");
}
}
class FactoryDeptSevice //用工廠類負責對介面類,主題類例項化物件
{
public static IDeptSevice getIDeptSeviceInstance()
{
return new DeptSeviceProxy(new DeptSeviceImpl());
}
}

相關推薦

java代理設計模式工廠設計模式綜合應用

package cn.mdln.study2; public class TestDemo11 { /**  * 主方法是客戶端,只關心取得通過工廠類取得例項化物件,不關係到底工廠類如何取得,  * 更不會關係主題類是如何例項化介面的,才不會關中間有經歷過那寫不為人知的操作

第6篇 Java的接口抽象

集合 conn event int str ckey 實現類 bst div 接口 Interface 在JAVA編程語言中是一個抽象類型,是抽象方法的集合。接口通常以interface來聲明。一個類通過實現接口(implements)的方式,從而實現接口的抽象方法。 接

Java基本資料型別包裝,字串轉換

儲存範圍大小: byte-short-char-int-long-float-double 低階到高階自動型別轉換: int i = 5; float f = i; double d = i; 高階到低階強制型別轉換: int a = 20; byte b = (byte) a;

Java 關於常量池快取的一點理解

先來看這麼一段程式碼 String str1 = "123"; String str2 = "123"; System.out.println(str1 == str2); String str3 = new String("123"

2-Python設計模式--工廠相關模式

一、快餐點餐系統 想必大家一定見過類似於麥當勞自助點餐檯一類的點餐系統吧。在一個大的觸控顯示屏上,有三類可以選擇的上餐品:漢堡等主餐、小食、飲料。當我們選擇好自己需要的食物,支付完成後,訂單就生成了。下面,我們用今天的主角--工廠模式--來生成這些食物的邏輯主體。首先,來看主餐的生成(僅以兩種漢堡為例)。

設計模式使用例項(1)——工廠模式列舉

關於設計模式 設計模式是幹啥的?有啥用? 首先需要明白的是設計模式並不是新的語法,而是一種優雅的程式碼組織方式。 舉個最簡單的例子,我們為預設編碼utf-8定義一個常量,這樣我們的專案在指定編碼的時候都可以引用Constants.DEFAUL_CHARSE

接口(三)java的接口嵌套接口

strong span class .... 定義 成員 抽象 數列 多個 一、接口 1. 接口簡介 接口: 是java的一種抽象類型,是抽象方法的集合。接口比抽象類更加抽象的抽象類型。 接口語法: [修飾符] [abstract] interface 接口名 [exten

設計模式工廠模式【非原創】

分支 難度 抽象工廠模式 並且 客戶端使用 對比 類圖 分享圖片 In 工廠模式屬於創建型設計模式,需要生成的對象叫做產品,生成對象的地 方叫做工廠。 在任何需要生成復雜對象的地方,都可以使用工廠方法模式。 --- 一、簡單工廠 1.簡介 ??簡單工廠模式是指專門定義一個

Java事件監聽機制觀察者設計模式

idea demo1 script 操作 alt face ner over 方法 一. Java事件監聽機制 1. 事件監聽三要素: 事件源,事件對象,事件監聽器 2. 三要素之間的關系:事件源註冊事件監聽器後,當事件源上發生某個動作時,事件源就會調用事件監聽的一個方法,

設計模式之單例模式工廠模式的Python實現(一)

1. 單例模式 單例模式(Singleton Pattern)是一種常用的軟體設計模式,該模式的主要目的是確保某一個類只有一個例項存在。當你希望在整個系統中,某個類只能出現一個例項時,單例物件就能派上用場。 比如,某個伺服器程式的配置資訊存放在一個檔案中,客戶端通過一個 AppConfig 的類來讀取配置檔案

Java基於靜態變數單例模式對快取的簡單實現

●What & Why 快取是什麼?他有什麼好處?相信不用說大家都知道。 目前筆者在做一個Java開發的Web專案,專案啟動的時候需要將大量不變的平臺數據放入快取中,方便快速讀取。一開始筆者很疑惑,Java是不能直接操作記憶體的,但是我們快取卻是要把資料放入記憶體

《JavaScript設計模式開發實踐》模式篇(3)—— 代理模式

代理模式是為一個物件提供一個代用品或佔位符,以便控制對它的訪問 故事背景: 假設當 A 在心情好的時候收到花,小明表白成功的機率有 60%,而當 A 在心情差的時候收到花,小明表白的成功率無限趨近於 0。 小明跟 A 剛剛認識兩天,還無法辨別 A 什麼時候心情好。如果不合時宜地把花送給 A,花

設計模式之單例模式工廠模式

單例模式 概念 單例模式是一種常見的“設計模式”! 什麼是設計模式? 所謂的設計模式,並不是一種新的語法,而是人們在實際的應用中面對某種特定的情形而設計出來的某種常見的有效的解決方案,只是經驗的總結! 單例就是單一的例項! 如果我們能通過某些技巧從語法上使得一個類只能開闢一

建立設計模式(5種)——工廠相關模式

建立類設計模式(5種)——工廠類相關模式 一、快餐點餐系統 想必大家一定見過類似於麥當勞自助點餐檯一類的點餐系統吧。在一個大的觸控顯示屏上,有三類可以選擇的上餐品:漢堡等主餐、小食、飲料。當我們選擇好自己需要的食物,支付完成後,訂單就生成了。下面,我們用今天的主角--工廠模式--來生成這些食

設計模式】簡單工廠模式工廠方法模式詳細解讀

1.前言  設計模式,各具特色,今天在此總結一下常見模式中 簡單工廠模式與工廠方法模式的區別與聯絡 2.兩種模式概要    1. 簡單工廠模式     2. 工廠方法模式   工廠方法模式又稱

Java基本資料型別對應的包裝和引用資料型別

基本資料型別變數儲存的是值,引用型別儲存的是物件的引用(物件的地址)。 基本資料型別不具有物件的特性,當有些地方必須要使用物件的時候,例如集合類(List,Set等),基本資料型別就不能使用了,所以Java提供了包裝類。基本資料型別可以進行加減乘除等運算,而包裝類提供了很多

java的監聽機制——觀察者設計模式詳解

好久沒有做筆記了,我發現研究過一個東西后忘的很快,等下次遇到後還得重新查資料學,倒不如寫篇筆記記錄一下下次遇到相同的問題後查查筆記瞬間就知道了,從而節省了好多時間,今天心血來潮哈哈,寫一篇簡單的筆記

簡單工廠模式工廠方法模式以及Mybatis工廠模式的使用

一、簡單工廠模式 Java是一門面向物件的語言。有很多時候我們需要去生產物件,工廠模式就是我們生產物件的一種方式。 比如這樣一個場景: 我們需要做一個兩個數之間的運算,但我們不知道使用者究竟要使用哪種運算子對其進行運算。我們就可以使用工廠模式,對使用者的選擇做一個判斷,從

Java代理和裝飾者模式的區別

裝飾模式:以對客戶端透明的方式擴充套件物件的功能,是繼承關係的一個替代方案; 代理模式:給一個物件提供一個代理物件,並有代理物件來控制對原有物件的引用; 裝飾模式為所裝飾的物件增強功能;代理模式對代理的物件施加控制,並不提供物件本身的增強功能 簡而言之,裝飾者是指的是自身,對功能的增強,而另一種是呼叫介面,實

理解Java字符流字節流的區別

png 技術 print 復制代碼 bar 顯式 數字 length ava 1. 什麽是流 Java中的流是對字節序列的抽象,我們可以想象有一個水管,只不過現在流動在水管中的不再是水,而是字節序列。和水流一樣,Java中的流也具有一個“流動的方向”,通常可以從中讀