时间:2021-07-01 10:21:17 帮助过:40人阅读
- <span style="color: #000000">装饰者模式:
- 对象增强的手段
- </span>*<span style="color: #000000">继承
- </span>*<span style="color: #000000">装饰者模式
- </span>*<span style="color: #000000">动态代理
- 被增强的对象可以切换
- 增强内容可以切换
- </span>---------------------<span style="color: #000000">
- 继承:
- 缺点:
- </span>1<span style="color: #000000">、增强的内容是死的,不能动
- </span>2<span style="color: #000000">、被增强的对象也是死的
- 使用继承回事类增多;
- </span><span style="color: #0000ff">class</span><span style="color: #000000"> 咖啡类{}
- </span><span style="color: #0000ff">class</span> 有糖咖啡 <span style="color: #0000ff">extends</span><span style="color: #000000"> 咖啡{}
- </span><span style="color: #0000ff">class</span> 加奶咖啡 <span style="color: #0000ff">extends</span><span style="color: #000000"> 咖啡{}
- </span><span style="color: #0000ff">class</span> 加盐咖啡 <span style="color: #0000ff">extends</span><span style="color: #000000"> 咖啡{}
- </span><span style="color: #0000ff">class</span> 加糖加奶 <span style="color: #0000ff">extends</span><span style="color: #000000"> 加奶{}
- </span>-------------------------------<span style="color: #000000">
- 装饰者模式:
- </span>1<span style="color: #000000">、增强的内容是死的
- </span>2<span style="color: #000000">、被增强的对象时任意的
- </span><span style="color: #0000ff">class</span><span style="color: #000000"> 咖啡类{}
- </span><span style="color: #0000ff">class</span> 有糖咖啡 <span style="color: #0000ff">extends</span><span style="color: #000000"> 咖啡{}
- </span><span style="color: #0000ff">class</span> 加奶咖啡 <span style="color: #0000ff">extends</span><span style="color: #000000"> 咖啡{}
- </span><span style="color: #0000ff">class</span> 加盐咖啡 <span style="color: #0000ff">extends</span><span style="color: #000000"> 咖啡{}
- 咖啡a </span>= <span style="color: #0000ff">new</span><span style="color: #000000"> 加糖();
- 咖啡 b </span>= <span style="color: #0000ff">new</span> 加盐(a);<span style="color: #008000">//</span><span style="color: #008000">对a进行装饰,就是给a加盐</span>
- 咖啡 c = <span style="color: #0000ff">new</span><span style="color: #000000"> 加奶(b);
- java io流中大量应用!、
- 四大家族:
- </span>1<span style="color: #000000">、字节:inputStream outputStream
- </span>2<span style="color: #000000">、字符:reader、writer
- InputStream
- FileInputStream:他是一个节点流,就是和一个资源绑定在一起的!文件
- BufferedInputStream : 他是装饰流,创建时必须给一个底层对象,然后我不管你给我的是什么流,我都会给你它添加缓冲区!
- </span><span style="color: #0000ff">new</span> BuferedInputStream(<span style="color: #0000ff">new</span> FileInputStream("c:/xxx.txt"<span style="color: #000000">));
- ObjectInputStream(</span><span style="color: #0000ff">new</span> BuferedInputStream(<span style="color: #0000ff">new</span> FileInputStream("c:/xxx.txt"<span style="color: #000000">)););
- ByteArrayInputStream(</span><span style="color: #0000ff">byte</span><span style="color: #000000">[] buf);
- GZIPIputStream();
- </span>--------------------<span style="color: #000000">
- 装饰用途:不知道被增强对象的具体类型时,可以使用!
- </span>1<span style="color: #000000">、是你还有你,一切拜托你!
- </span><span style="color: #0000ff">class</span> MyConnection <span style="color: #0000ff">implements</span><span style="color: #000000"> Connection{
- </span><span style="color: #0000ff">private</span><span style="color: #000000"> Connection con;
- </span><span style="color: #0000ff">public</span> MyConnection(Connection con ){<span style="color: #008000">//</span><span style="color: #008000">通过构造器传递底层对象</span>
- <span style="color: #0000ff">this</span>.con=<span style="color: #000000">con;
- }
- </span><span style="color: #008000">//</span><span style="color: #008000">一切拜托你</span>
- <span style="color: #0000ff">public</span><span style="color: #000000"> Statement createStatement(){
- </span><span style="color: #0000ff">return</span><span style="color: #000000"> con.createStatement();
- }
- </span><span style="color: #008000">//</span><span style="color: #008000">增强方法</span>
- <span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span><span style="color: #000000"> close(){
- 把当前链接归还给池!
- }
- }
- Connection con </span>=<span style="color: #000000"> 通过四大参数创建链接对象由mysql提供
- Connection con1 </span>= <span style="color: #0000ff">new</span><span style="color: #000000"> MyConnection(con);
- con1.close();</span>
jdbc_dbcp连接池和装饰者模式概述
标签:具体类 rate mon time 设计模式 class puts 一起 color