zoukankan      html  css  js  c++  java
  • 【设计模式】适配器模式与Reader、InputStream之间的适配

    简述

    适配器模式,目的是将A对象通过适配、转换的方式转换成B对象来使用,为什么转换为B对象?因为用户通过依赖B对象来使用。
    适配器的实现有两种方式。

    继承实现

    组合实现

    基于Java单继承的机制,组合实现的方式更为常见、灵活。

    Reader、InputStream之间的适配,字符流、字节流之间的适配

    Demo代码就不写了,去JDK看一个使用例子,是很好的参考,就是IO中的ReaderInputStreamReaderInputStream

    InputStream implements Closeable:

    Reader implements Readable, Closeable:

    InputStreamReader:

    InputStreamReader的使用:

    import java.io.BufferedReader;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    public class InputStreamTest {
    
    	public static void main(String[] args) {
    		
    		try {
    			FileInputStream fis = new FileInputStream("D:/README.TXT"); // FileInputStream extends InputStream
    			InputStreamReader isr = new InputStreamReader(fis);         // InputStreamReader extends Reader
    			BufferedReader br = new BufferedReader(isr);				// BufferedReader extends Reader
    			
    			String s = null;
    			while ((s = br.readLine()) != null) {
    				System.out.println(s);
    			}
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    
    	}
    
    }
    

    思考题

    适配器模式与装饰器模式的区别?

  • 相关阅读:
    PL/SQL注册码
    分页sql
    js获取url值
    C语言中的bool类型 stdbool.h
    语音朗读小程序
    50. Pow(x, n)
    二维数组旋转
    用一位数组代替二维数组作为形参使用
    单链表排序——交换数据成员
    C++重载输入流、输出流运算符
  • 原文地址:https://www.cnblogs.com/nick-huang/p/7011451.html
Copyright © 2011-2022 走看看