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方法装饰,处理结果是将数据库的连接池用完放回到数据库连接池中。

      

          



  • 相关阅读:
    SQL Server 2005: About login password hashes
    record drop database in sql log
    一些锁的示例
    find the physical location for specified data row
    运行sp_xp_cmdshell_proxy_account 出现的错误
    删除用户出现的错误
    conversion to dalvik format failed with error 1
    文章标题 标签提取
    in order to continue installation,please close the following application;
    提示找不到 C:\Program Files\VMware\dndlogs\dndlog.conf
  • 原文地址:https://www.cnblogs.com/taotingkai/p/6257298.html
Copyright © 2011-2022 走看看