Java4Andriod 从零学起 ---learn11

BufferedReader ; 设计者模式--DecoraterPattern

BufferedReader:

import java.io.*;

class Test{
    public static void main(String args []){
        FileReader fileReader = null ;
        FileWriter fileWriter = null ;
        BufferedReader bufferReader = null ;
 //       BufferedWriter bufferWriter = null ;

        try{
            fileReader = new FileReader("E:/java/Java4Android/code/learn12/users.txt");  //这里将FileReader作为参数传入
 //           fileWriter = new FileWriter("E:/java/Java4Android/code/learn12/userout.txt");
            bufferReader = new BufferedReader(fileReader);
 //           bufferWriter = new BufferedWriter(fileWriter);

            String line = null ;
            while(true){
                line = bufferReader.readLine();
                if(line == null)
                    break;
                System.out.println(line);
 //               bufferWriter.writeLine(line , 0 , line.length);
            }
        }
        catch(Exception e){
            e.printStackTrace();
        }
        finally{
            try{
                fileReader.close();
  //              fileWriter.close();
                bufferReader.close();
 //               bufferWriter.close();
            }
            catch(Exception e){
                e.printStackTrace();
            }
        }
    }
}
/*
    1.FileReader --> 节点流     被装饰者
    2.BufferedReader --> 处理流 装饰者

*/

设计者模式:

interface Worker{
    public void doSomeWork();
}


/*
装饰者设计模式:
    1.将树形的继承,变成交叉式表格实现
    2.就像包装纸一样,对原来的类进行再扩展
*/

class Carpenter implements Worker{
    public void doSomeWork(){
        System.out.println("修窗户");
    }
}

class Plumber implements Worker{
    public void doSomeWork(){
        System.out.println("修水管");
    }
}

class AWorker implements Worker{
    private Worker worker;  //作用: 将外部的worker接收并存储下来
    public AWorker(){

    }
    public AWorker(Worker worker){  //通过构造函数将worker参数传递进来
        this.worker = worker ;
    }
    public void doSomeWork(){
        System.out.println("我来自A公司");  //有点像复合函数
        this.worker.doSomeWork();
    }
}

class BWorker implements Worker{
    private Worker worker;
    public BWorker(){

    }
    public BWorker(Worker worker){
        this.worker = worker;
    }
    public void doSomeWork(){
        System.out.println("我来自B公司");
        this.worker.doSomeWork();
    }
}

public class Test{
    public static void main(String args []){
        Plumber p = new Plumber();
        Carpenter c = new Carpenter();
        AWorker p_A = new AWorker(p);
        BWorker c_B = new BWorker(c);

        p_A.doSomeWork();
        c_B.doSomeWork();

        Plumber pp = new Plumber();
        Carpenter cc = new Carpenter();
        AWorker pp_A = new AWorker(pp);
        BWorker cc_B = new BWorker(cc);

        pp_A.doSomeWork();
        cc_B.doSomeWork();
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值