适配器模式:将一个类的接口转换成客户指望的另外一个接口,让本来不兼容的接口能够合做无间。 //把FileInputStream文件字节流适配成InputStreamReader字符流来操做文件字符串。
FileInputStream fileInput = new FileInputStream(file);
InputStreamReader inputStreamReader = new InputStreamReader(fileInput);
- 1.适配器对象实现原有接口
- 2.适配器对象组合一个实现新接口的对象
- 3.对适配器原有接口方法的调用被委托给新接口的实例的特定方法(重写旧接口方法来调用新接口功能。)
- 好比,在io流中,InputStreamReader类继承了Reader接口,但要建立它必须在构造函数中传入一个InputStream的实例,InputStreamReader的做用也就是将InputStream适配到Reader。InputStreamReader实现了Reader接口,而且持有了InputStream的引用。这里,适配器就是InputStreamReader类,而源角色就是InputStream表明的实例对象,目标接口就是Reader类。
- 适配器模式主要在于将一个接口转变成另外一个接口,它的目的是经过改变接口来达到重复使用的目的;而装饰器模式不是要改变被装饰对象的接口,而是保持原有的接口,可是加强原有对象的功能,或改变原有对象的方法而提升性能。