`

装饰者设计模式演示示例

 
阅读更多
package com.msmiles.study;

import java.io.FileReader;
import java.io.IOException;

/**
 * 装饰者设计模式的演示
 * MyBuffereReader对FileReader进行了增强,
 * FileReader作为对象进行构造参数传入
 * MyBuffereReader称为装饰类
 */
public class MyBuffereReader {
	
	private FileReader fr;

	MyBuffereReader(FileReader fr) {
		this.fr = fr;
	}

	public String myReadLine() throws IOException {
		StringBuilder sb = new StringBuilder();
		int ch = 0;
		while ((ch = fr.read()) != -1) {
			if (ch == '\r')
				continue;
			if (ch == '\n')
				return sb.toString();
			else
				sb.append((char) ch);
		}
		if (sb.length() != 0)
			return sb.toString();
		return null;
	}

	public void myClose() throws IOException {
		if (fr != null)
			fr.close();
	}
}

 

分享到:
评论

相关推荐

    23种Python设计模式示例演示源码包.rar

    23种Python设计模式示例演示源码包,比如包括了工厂模式、Bridge桥接模式、Builder构建模式、Facade外观模式、Adapter适配器模式,Composite组合模式、Decorator装饰器模式,FactoryMethod工厂方法模式、Flyweight享...

    DecoratorPattern:装饰者模式示例

    装饰模式装饰器设计模式的示例项目装饰器模式允许用户在不改变其结构的情况下向现有对象添加新功能。 这种类型的设计模式属于结构模式,因为这种模式充当现有类的包装器。 这种模式创建了一个装饰器类,它包装了原始...

    Design-Patterns:最流行的创建、行为和结构软件设计模式的实现和演示

    最流行的创建、行为和结构软件设计模式的实现和演示。 抽象工厂 建造者 工厂方法 工厂 原型 简单工厂 单身人士 适配器 桥 合成的 装饰器 正面 蝇量级 代理人 责任链 命令 口译员 迭代器 调解员 纪念 观察员 状态 ...

    asp.net知识库

    CMT DEMO(容器管理事务演示) 事务隔离性的一些基础知识 在组件之间实现事务和异步提交事务(NET2.0) 其它 在.NET访问MySql数据库时的几点经验! 自动代码生成器 关于能自定义格式的、支持多语言的、支持多数据库的...

    享元、解释器、职责链、装饰模式

    看了上面奖金计算的问题,所幸我们只是来学习设计模式,并不是真的要去实现整个奖金计算体系的业务,因此也没有必要把所有的计算业务都罗列在这里,为了后面演示的需要,简化一下,演示用的奖金计算体系如下: ...

    design-pattern

    装饰器正面蝇量级代理人服务定位器模型-视图-演示者仆人事件聚合器 行为模式行为模式与算法和对象之间的职责分配有关。 责任链命令口译员迭代器调解员纪念观察员状态战略模板方法游客双重检查锁定空对象打回来执行...

    最新Python3.5零基础+高级+完整项目(28周全)培训视频学习资料

    最新Python3.5零基础+高级+完整项目(28周全)培训视频学习资料;...CMDB插件示例演示 算法介绍与列表查找 冒泡 选择 插入排序 快排 堆排序 第28周 堆排序复习 归并排序 希尔排序 算法练习 栈和队列 数据结构其他

    精通并发与netty视频教程(2018)视频教程

    32_IO体系架构系统回顾与装饰模式的具体应用 33_Java NIO深入详解与体系分析 34_Buffer中各重要状态属性的含义与关系图解 35_Java NIO核心类源码解读与分析 36_文件通道用法详解 37_Buffer深入详解 38_NIO堆外内存与...

    精通并发与 netty 视频教程(2018)视频教程

    Channel选择器工厂与轮询算法及注册底层实现 72_Netty线程模型深度解读与架构设计原则 73_Netty底层架构系统总结与应用实践 74_Netty对于异步读写操作的架构思想与观察者模式的重要应用 75_适配器模式与模板方法模式...

    精通并发与netty 无加密视频

    第74讲:Netty对于异步读写操作的架构思想与观察者模式的重要应用 第75讲:适配器模式与模板方法模式在入站处理器中的应用 第76讲:Netty项目开发过程中常见且重要事项分析 第77讲:Java NIO Buffer总结回顾与...

Global site tag (gtag.js) - Google Analytics