设计模式之装饰器模式

突然想写自己的博客,记录一些对自己平时学习的一些总结还有感想,刚好 最近在看设计模式,那就从这里开始吧。

现在的软件开发,很依赖与开源的框架,框架的源码,你可以看到许多都是软件工程,设计模式的最佳实践。

设计模式是人们通过实践而总结出的约定俗成的编写软件的方法,采用良好的设计模式,可以使程序易于拓展与维护,通用的术语,可以使开发人员从更高的层次理解程序。

举个栗子


JAVA I/O库,一般人第一次接触这个库的时候都不容易理解,有许多类,每个类都有不同的作用,太不容易记了。但是(敲黑板),当你知道I/O库的设计采用了装饰器的设计模式所有的类都是用来包装InputStream的,理解起来就简单多了。


在我们设计程序的结构的时候,应当遵循对修改关闭,对拓展开放的原则,添加新功能时,不要修改程序原有的代码。而是去拓展原有的代码。

InputStream是一个抽象类,定义了读取以及一些字节流的操作 ,FileInputStream根据自己的具体需求,继承了InputStream,实现了读取文件的方法。FileInputStream并没有修改InputStream,而是将它包裹起来了,这就是装饰者模式。

现在,我们来实现自己的输入流,将每个字符转变为小写。

public class LowerCaseInputStream extends FilterInputStream

{

public LowerCaseInputStream(InputStream in)

{

super(in);

}

public int read() throws IOException

{

int c = super.read();

return (c == -1 ? c : Character.toLowerCase((char)c));

}

public int read(byte[] b,int offset,int len) throws IOExeption

  {

int result = super.read(b,offset,len);

for (int i = offset; i < offset+result;i++)

{

b[i] = (byte)Character.toLowerCase((char)b[i]);

}

return result;

}

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值