我是靠谱客的博主 俏皮泥猴桃,最近开发中收集的这篇文章主要介绍设计模式之装饰器模式&代理模式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

設計模式

裝飾器模式&代理模式的比較
一、定義
裝飾器模式:在不改變原有對象的基礎上,動態的給原有對象增加一些職責/功能。(屬於對象結構型模式)
代理模式:提供一個代理來控制對原有對象的訪問。代理對象作為訪問對象和目標對象之間的中介。(理解為律師/中介)
二、二者区别比较
相同点:装饰器类和代理类均需要与原始对象实现同一个接口。
不同点:装饰器模式的通常做法是,将原始对象作为一个参数传递给装饰者 的构造器(意为在原有对象基础上进行装饰);增强自身
代理模式的通常做法是,直接在构造器中创建一个被代理的对象(意为全权代理);是让代理对象去做一些与本身业务不太相关的职责比如日志和设置缓存。

三、代码实现

//抽象接口
public interface Sourceable{
	void method();
}
//實現類
public class Source implements Sourceable {
	void method(){
		System.out.println("原有類的方法被訪問了");
	}
}
//裝飾器類
public class Decorator implements Sourceable{
	private Sourceable source;
	public Decorator(Sourceable source){
		this.source = source;
	}
	void method(){
		source.method();
		System.out,println("裝飾器動態增加的職責/功能");
	}
}
//代理类
public class Proxy implements Sourceable{
 // 这是区别于装饰器类的关键点。代理要全权代理原有对象,控制对象的访问
	private Source source;
	public Proxy(){
		this.source = new Source();
	}
	void method(){
		source.method();
		System.out.println("代理类的功能实现");
	}
}

最后

以上就是俏皮泥猴桃为你收集整理的设计模式之装饰器模式&代理模式的全部内容,希望文章能够帮你解决设计模式之装饰器模式&代理模式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部