要点:代理模式为另一个对象提供代表。以便控制客户对对象的访问。远程代理管理客户和远程对象之间的交互。虚拟代理控制访问实例化开销大的对象。保护代理基于调用者控制对象的方法的访问。代理有很多:缓存代理,同步代理,防火墙代理和写入时复制代理。代理在结构上类似装饰者,但是目的不同。装饰者模式为对象加上行为。...
分类:
其他好文 时间:
2016-01-26 18:12:41
阅读次数:
213
设计模式系列都是学习HeadFirst设计模式得出的学习心得,中间的例子也会采用书中的例子。这里有必要解释一下,在下面星巴克咖啡的例子中,有几种基本的咖啡,还有牛奶、豆浆等等可以向咖啡中添加,这里说明防止下面不懂。 今天我们来了解一下装饰者模式。 回想一下java的io包,各种stream排...
分类:
其他好文 时间:
2016-01-19 22:14:05
阅读次数:
217
一:装饰模式的定义 --->动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。 --->如果大家还记得代理模式,那么很容易看懂这个类图,装饰类的作用也就是一个特殊的代理类. --->在装饰模式中,必然有一个最基本、最核心、最原始的接口或抽象类充当Component抽象...
分类:
其他好文 时间:
2016-01-19 20:58:39
阅读次数:
200
Java I/O标签: Java基础
Java的I/O功能通过java.io包下的类和接口来支持,在java.io包下主要包括输入/输出两种IO流,每种输入/输出流又可分为字节流和字符流两大类.字节流支持以字节(8位)为单位的IO操作,而字符流则以字符(16位-Java中)为单位进行IO操作.
除此之外,Java的IO流还使用装饰者模式,将IO流分成底层节点流和上层处理流,节点流直...
分类:
编程语言 时间:
2016-01-16 09:48:46
阅读次数:
388
一、定义装饰者模式:动态地给一个对象添加一些额外的职责,就增加功能来说,Decorator模式比生成子类更为灵活。Decorator模式的工作原理是:可以创建始于Decorator对象(负责新的功能的对象)终于原对象的一个对象“链”。二、实例:手机屏幕装饰2.1 手机public abstract ...
分类:
其他好文 时间:
2016-01-11 23:51:39
阅读次数:
283
意图:动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比于生成子类更为灵活。该模式以对客户端透明的方式扩展对象的功能。适用环境在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。处理那些可以撤销的职责。当不能采用生成子类的方法进行扩充时。一种情况是,可能有大量...
分类:
编程语言 时间:
2016-01-11 20:23:08
阅读次数:
211
装饰者模式的目的是给对象附加上更多功能,相对于组合方式,他不需要修改对象源码,相对于继承模式,他更加灵活。using System;using System.Collections;using System.Collections.Generic;using System.Linq;namesp.....
MobilePhone(抽象手机类) abstract class Mobilephone { public string name; public abstract void SendMessage(); public abstract voi...
分类:
其他好文 时间:
2016-01-03 20:57:04
阅读次数:
138
创建抽象组件类MobilePhone,创建具体组件小米和苹果手机类,继承自MobilePhone。 public abstract class MobilePhone { public String phoneName; public abstract void SendMessag...
分类:
其他好文 时间:
2015-12-31 01:37:33
阅读次数:
148
要求:程序的UML图以及代码:(1)创建抽象组件类MobilePhone。 public abstract class MobilePhone { public String phoneName; public abstract void SendMessage(); pub...
分类:
其他好文 时间:
2015-12-31 00:06:32
阅读次数:
292