您的位置:首页 > 职场人生

黑马程序员---装饰类设计模式

2015-05-30 21:08 375 查看
------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

装饰模式比继承要灵活,避免了集成体系的臃肿

而且降低了类与类之间的关系

装饰类因为增强已有对象,具备的功能和已有的对象是相同的,

只不过提供了更强的功能,所以装饰类和被装饰类都是属于一个体系中。

BufferedInputStreamm也是一个装饰类,下面是我自定义的一个BufferedInputStreamm类,

把read()方法按照我们的想法实现出来

class MyBufferedInputStreamm
{
private InputStream in;
//将InputStream对象传给装饰类
MyBufferedInputStreamm(InputStream in)
{
this.in = in;
}

private int pos = 0;//定义一个指针,
private int count = 0;//定义一个计数器
private byte[] buf = new byte[1024];//定义一个字节数组

public int myRead()throws IOException
{
if (count==0)//判断计数器为零时,数组中没有数据,需要往里面存储
{
count = in.read(buf);
if (count<0)
{
return -1;
}
pos = 0;
byte b = buf[pos];
pos++;
count--;
return b&255;
}
else if (count>0)//判断数组中有对象,然后取出来,
//同时指针指向下一个数据,计数器减一,表示数据减少一个
{
byte b = buf[pos];
pos++;
count--;
return b&255;
}
return -1;
}
public void myClose()throws IOException
{
in.close();
}
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: