1. 程式人生 > >代理設計模式簡單例項

代理設計模式簡單例項

public interface Interface {
	void doSomething();
	void somethingElse(String arg);
}
public class RealObject implements Interface {

	public void doSomething() {
		System.out.println("RealObject.doSomething()");
	}

	public void somethingElse(String arg) {
		System.out.println("RealObject.somethingElse("+arg+")");
	}
}

public class SimpleProxy implements Interface {
	
	private Interface proxied;
	
	public SimpleProxy(Interface proxied) {
		this.proxied = proxied;
	}
	
	public void doSomething() {
		System.out.println("SimpleProxy.doSomething()");
		proxied.doSomething();
		
	}
	
	public void somethingElse(String arg) {
		System.out.println("SimpleProxy.somethingElse("+arg+")");
		proxied.somethingElse(arg);
	}
}

/**
 * 動態代理 簡單例項
 */
public class SimpleProxyDemo {
	public static void consumer( Interface iface ) {
		iface.doSomething();
		iface.somethingElse("bonobo");
	}
	
	public static void main(String[] args) {
		consumer(new RealObject());
		consumer(new SimpleProxy(new RealObject()));
	}
}


相關推薦

代理設計模式簡單例項

public interface Interface { void doSomething(); void somethingElse(String arg); } public class RealObject implements Interface { p

java常用設計模式--享元模式簡單例項

package com.ruanyun;import java.util.HashMap;import java.util.Map;/** * @Auther: maxw * @Date: 2018/11/21 09:47 * @Description:享元模式:“享”就是分享之意,指一物被眾人共享,而這也正

通過例項設計模式——簡單工廠模式

本文我們通過例項的方式來簡單描述一下簡單工廠模式的由來及其作用,話說我們現在需要開發一個圖形介面工具,然後將這個工具提供給一個客戶去使用,系統初期我們只需要畫一個圓(Circle)和一個三角形(Triangle)即可。那麼我們的工具就按照如下的方式設計。

淺談Java設計模式——單例項簡單工廠、抽象工廠、觀察者

最近的專案裡面涉及到一些Java設計模式,在此簡單談一下自己的看法,以下示例一部分參考同行,大部分自己設計。 1.單例模式 如果一個類始終只能建立一個例項,則這個類成為單例類,這種設計模式稱為單例模式。 class Singleton {

設計模式--簡單工廠模式

-- nfa sum 處理 create new 功能 子類 工廠模式 近期又在看程傑的《大話設計模式》這本書,這真的是我超級喜歡的一本書。裏面的內容非常精彩。學習之余。將書中的內容整理出來,另外加上了一些自己的理解,方便日後自己回想並同一時候希望本筆記能夠對各位編程

php設計模式--簡單介紹

php 深入 工廠 設計 三種 方法 php開源 交換對象 而不是   平時我們用到的設計模式很多,建議大家多多讀一些php開源框架,當深入的閱讀了一些php框架之後,就能更好的體會設計模式的妙處,閱讀以下《大話設計模式這本書》,不過這本書裏邊的語言是java,但是學過編程

C#設計模式——簡單工廠模式

turn static 現在 rri 介紹 return 天都 土豆 增加 一、引言   這個系列也是自己對設計模式的一些學習筆記,希望對一些初學設計模式的人有所幫助的,在上一個專題中介紹了單例模式,在這個專題中繼續為大家介紹一個比較容易理解的模式——簡單工廠模式。 二、簡

設計模式-簡單工廠模式

sha include highlight namespace 簡單工廠模式 case int 工廠模式 argv 簡單工廠模式:是一種實例化對象的方式,只要輸入實例化對象的名字,就可以通過工廠對象的相應工廠函數來制造你需要的對象 核心是,對於一個父類的多個繼承子類,工廠對

設計模式-簡單工廠 --工廠模式--抽象模式

產品 cto .cn actor eth 分享 col http override 1 、簡單工廠模式 package com.bjsxt.factory.simplefactory; public interface Car { void run(); }

設計模式——簡單工廠模式

idt index init == set ces edev ini property 聲明:以下內容來源於《大話設計模式》,學習 簡單工廠模式類圖: 界面: 代碼: using System; using System.Collections.Generic; us

java設計模式代理設計模式(Proxy)

pub 客戶端 clas bject 模式 只需要 java 接口 new 一個簡單Proxy代理模式範例 interface Subject{ //定義核心主題所要完成的功能 public void make(); } class RealSubj

設計模式:簡單工廠和單例工廠

判斷 include sse src div list .class name set 1 <?php 2 /** 3 * 純粹工廠類 4 */ 5 /*class Factory { 6 public static funct

JavaScript設計模式--簡單工廠模式例子---XHR工廠

++ 原型鏈 this soft microsoft for .proto 跨域 默認 第一步,Ajax操作接口(目的是起一個接口檢測作用) (1)引入接口文件 //定義一個靜態方法來實現接口與實現類的直接檢驗 //靜態方法不要寫出Interface.pro

java之Spring(AOP)前奏-動態代理設計模式(上)

對象 .cn 分享圖片 賦值 alt his 編程習慣 輸出 style 我們常常會遇到這樣的事,項目經理讓你為一個功能類再加一個功能A,然後你加班為這個類加上了功能A; 過了兩天又來了新需求,再在A功能後面加上一個新功能B,你加班寫好了這個功能B,加在了A後面;又過

設計模式---簡單工廠模式

基於 static tor nfa 減少 只知道 系統 因此 sqrt 簡單工廠模式又稱為靜態工廠方法模式(static factory method ),它不是GOF(Gang of Four, 四人組)所講的23種設計模式之一,但卻是實際中經常使用的方法之一。 實現:定

代理設計模式

模式 操作 bsp 調用 println 對象 real int 代理上網 假設有這樣一種情景: l 張三借給李四5000000塊錢 l 李四不換了,張三很生氣 l 張三找到王五,王五是討債公司的 l 王五準備了老虎閘和辣椒水 l 把李四欠張三的錢拿回來了 也就是說,張

設計模式-簡單工廠

簡單工廠模式public abstract class baseClass { public abstract double getResult(double num1,double num2); } public class A:baseClass { public over

設計模式簡單入門---單例模式

new tint highlight ava jdb on() ble 簡單 變慢 1 定義   Ensure a class only has one instance,and provide a global point of access to it. (保證一個類僅

設計模式簡單工廠、工廠方法、抽象工廠

夢想 吃水果 system 水果 com 種類 spa pub rri 簡單工廠模式 舉個例子: 小Z喜歡吃水果(Fruit)更喜歡喝果汁(juice),喜歡三類水果哈密瓜(Hami melon)、香蕉(banana)、桃子(peach)利用簡單的工廠實現小Z喝果汁夢想

設計模式(22)-----代理設計模式-----靜態代理

一:用繼承實現靜態代理   1 package com.DesignPatterns.al.Dynamic1; 2 3 public interface Moveable { 4 public void move(); 5 } package com.DesignPa