装饰设计模式

装饰设计模式:

  字符流的缓冲区时为了提高效率而存在。缓冲区的出现提供了比以前流对象功能更强的函数。故、当对类的功能进行增强时,可称为对该类的装饰。

  同时,装饰类的出现具备灵活性。

  装饰和继承的区别:

    装饰:装饰设计模式是一种解决某一类问题的思想,该类问题的有效解决方案。解决给该类提供增强功能的问题。

    继承:是面向对象的特征之一。

    继承会让体系变的臃肿,而装饰更为灵活。

  装饰设计模式的出现可以对一组类进行功能的增强;而装饰类本身也是该体系的一个子类。

  代码体现:通常情况下,装饰类一般不单独存在,都是通过构造函数接收被装饰的对象。基于被装饰的对象的功能,并对外提供增强型的功能。

  在IO中有很多装饰设计模式的体现。如:BufferedReader、BufferedWriter

//实例:装饰ClassName 对象的类,称为装饰类,只为增强ClassName的功能而出现
class ClassName{
  void method(){
    //Code...
  }  
}

class NewClassName{
  private ClassName cn;
  NewClassName(ClassName cn){
    this.cn=cn;
  }

  void newMethod(){
    cn.method();
    //Code...
  }
}

 

posted @ 2018-11-28 23:25  水痕灬  阅读(106)  评论(0编辑  收藏  举报