91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java 中設計模式(裝飾設計模式)的實例詳解

發布時間:2020-09-30 09:01:17 來源:腳本之家 閱讀:184 作者:海那邊的小萌男 欄目:編程語言

java 中設計模式(裝飾設計模式)的實例詳解

應用場景

在不對原有對象類進行修改的基礎上,給一個或多個已有的類對象提供增強額外的功能.

我覺得可以從字面理解,裝飾,裝飾房子。房子可以看成原有的類。等于你把一個已經建好的房子按照自己的想法再裝飾一遍。繼承也可以實現這樣的功能,但是繼承有它的缺點,繼承只是單一繼承。裝飾設計模式可以取多個不同的類的不同功能。

具體步驟:

◎第1步:通過構造傳參把需要加強的類傳過來。(你要裝修房子,肯定的先有房子吧。這個很好理解)

◎第2步:把具體需要增強的功能寫了

具體例子及代碼

寫一個MyBufferedReader類,使它能夠對字符流(如FileReader、InputStreamReader和PipedReader等)進行功能增強:

(1) 提供帶緩沖的myRead()方法,對原有的read()方法進行增速;

(2)提供一個能夠每次讀取一行字符的myReadLine()方法。

import java.io.FileReader;
import java.io.IOException;
/**
 * * 版本2: 增強FileReader類,使它具有如下功能:
 * (1) 提供帶緩沖的myRead()方法,對原有的read()方法進行增速;
  (2)提供一個能夠每次讀取一行字符的myReadLine()方法。
 */
public class MyBufferedReader {
  private char[] cbuf= new char[1024];//緩存
  private int pos=0; //當前讀取的位置
  private int count=0;//記錄緩存中當前的字符總數

  //封裝一個FileReader對象,幫助我們實現從文件中讀取一批數據
  private FileReader r = null;

  public MyBufferedReader(FileReader r) {
    super();
    this.r = r;
  }


  /**
   * 從緩存中讀取一個字符數據返回
   * @throws IOException 
   * @return所讀取的字符,如果到達文件末尾則返回-1
   */
  public int myRead() throws IOException{
    //從文件中把數據讀取到緩存buf[]中
    if(count<=0){
      //System.out.println("**********");
      count = r.read(cbuf);
      if(count==-1){
        return -1;
      }
      pos=0;
    }

    char ch = cbuf[pos];
    pos++;
    count--;
    return ch;
  }


  //回車字符: \r 13
  //換行字符: \n 10

  public String myReadLine() throws IOException{
    StringBuilder sb=new StringBuilder();
    int ch=0;
    //有回車換行符部分
    while( (ch=myRead())!=-1){ 
      if(ch=='\r'){
        continue;
      }
      if(ch=='\n'){
        return sb.toString();
      }
      sb.append((char)ch);
    }

    if(sb.length()!=0){//最后一行(沒有回車換行符)
      return sb.toString();
    }

    return null;//最后或空文件
  }


  public void close() throws IOException{
    r.close();
  }
}

如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

濉溪县| 马尔康县| 海阳市| 中阳县| 农安县| 清水河县| 花莲县| 新河县| 清新县| 华安县| 军事| 百色市| 大兴区| 小金县| 沁水县| 社旗县| 织金县| 东海县| 乐安县| 江达县| 囊谦县| 阳高县| 大同县| 和静县| 宽城| 长寿区| 天峨县| 哈尔滨市| 红桥区| 邮箱| 嘉黎县| 宁乡县| 阿拉善右旗| 吉木乃县| 蕲春县| 日土县| 新宁县| 仙游县| 介休市| 芮城县| 梓潼县|