zoukankan      html  css  js  c++  java
  • JAVA的设计模式之装饰设计模式

    1、装饰设计模式

    顾名思义,装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例,关系图如下:

    2、看这个图可能不容易理解,举两个例子。

    1)首先是IO流中的知识。

    相信大家都知道缓冲流。BufferedInputStream,BufferedOutputStream 等等

    BufferedInputStream bis = new BufferedInputStream(new FileInputStream(new File("aaa.txt")));

    他出现的原因是什么,是因为FileInputStream的效率不高,需要对FileInputStream进行优化,对FileInputStream进行包装之后,就能使他性能变得较高。

    这种思想就是装饰设计模式的思想。

    当然装饰设计模式也有一些要求。

                        1、编写一个类,实现与被包装类相同的接口。(使这个类和数据库的驱动实现有着相同的行为)
                        2、定义一个类属性,引用被包装类的实例
                        3、定义构造方法,传入被包装类的实例
                        4、对于要改写的方法,编写自己的代码。
                        5、对于不需要改写的方法,调用原有对象的对应方法。

    2)数据库连接池

        为了避免用户的每一次请求都需要连接数据库,而数据库创建连接需要相对较大的资源,如果一个网站的访问量较大的话,极大的造成数据库的资源浪费,容易造成数据库的资源浪费,使用数据库的连接池可以有效地解决这个问题。

        用户的每一次请求如果数据库连接池存在连接的话,就在数据库的连接池中取连接。但是我们的这个数据库的连接用完之后如何处理呢,理论上是因该把这个数据库的连接返回到数据库连接池中,但是没有这样的方法来处理。

        此时,可以装饰Connection对象,将其close方法装饰,处理结果是将数据库的连接池用完放回到数据库连接池中。

      

          



  • 相关阅读:
    HTML转义字符
    网站项目开发经验总结
    SQL SERVER事务处理
    5种方法在mac系统修改hosts文件
    用MPMoviePlayerController做在线音乐播放
    UISearchBar的使用心得
    10 个免费的 C/C++ 集成开发环境
    TableView有些属性的修改只能在init里面
    UIScrollView的正确使用方法
    设置UIView阴影shadow 边框 边框颜色
  • 原文地址:https://www.cnblogs.com/taotingkai/p/6257298.html
Copyright © 2011-2022 走看看