当前位置: 首页 > news >正文

企业网站建设的基本标准是广告公司运作模式

企业网站建设的基本标准是,广告公司运作模式,破解网站后台密码,学做网站容易吗设计模式-详细说明享元模式设计#xff0c;保准一听就会#xff0c;不会你来打我 1.前言 今天呢#xff0c;我们来说下享元模式#xff0c;享元模式是结构型模式#xff0c;我的感觉#xff0c;结构型模式都是相对比较简单的设计模式#xff0c;这个也是#xff0c;之… 设计模式-详细说明享元模式设计保准一听就会不会你来打我 1.前言 今天呢我们来说下享元模式享元模式是结构型模式我的感觉结构型模式都是相对比较简单的设计模式这个也是之前手写Mybatis时有学习了解数据库连接池的设计非常精彩其中就运用了咱们这节说的设计模式享元模式。 2.什么是享元模式 享元模式 对一些共享对象进行复用的思想这样减少内存使用提高资源性能像我们使用redis进行缓存处理的线程池数据源连接池都是享元模式享元模式其实是一个思想一般会和工厂模式或其他经常使用的设计模式搭配使用。 那根据这种设计理念我们自己实现个数据库连接池当然是伪代码哈毕竟数据库连接池的业务比较庞大和复杂我们这个就是简单实现但也能够让你理解到数据库连接池的代码设计和思路。 之所以选择数据库连接池的原因是数据库连接池使用是连接连接的创建会有很大消耗所以就出现个池子作共享操作谁用谁从池子里取连接不用了就送回池子里所以这是个典型的享元模式设计思想。 3.代码设计 因为我们知道数据库连接池最主要有连接还有数据源以及数据源工厂那么用户可以通过数据源工厂连接数据源根据数据源获取连接。 3.1 Connection 首先我们定义连接接口Connection定义连接的提交、回滚、关闭方法。 import java.sql.SQLException;/*** Author df* Description:* Date 2024/3/2 16:05*/ public interface Connection {void commit();void rollback();void close(); }然后就是连接的实现DefaultConnection实现Connection接口回滚和提交就不写代码了因为说的是数据库连接池连接池的处理会有创建连接和回收连接那么什么时候回收连接呢就是连接关闭的时候所以在关闭连接的方法里我们调用了回收连接pooledDatasource.pushConnection(this); 由于连接池需要在池数据源里操作所以我们需要通过构造方法把PooledDatasource传入进来这样回收连接时可以调用PooledDatasource的回收方法。代码如下 /*** Author df* Description:* Date 2024/3/2 16:31*/ public class DefaultConnection implements Connection {private PooledDatasource pooledDatasource;public DefaultConnection(PooledDatasource pooledDatasource) {this.pooledDatasource pooledDatasource;}Overridepublic void commit() {// 模拟提交}Overridepublic void rollback() {// 模拟回滚}Overridepublic void close() {pooledDatasource.pushConnection(this);} }3.2 DataSource 接着我们在定义数据源接口DataSource定义获取连接方法。 /*** Author df* Description: 数据源接口* Date 2024/3/2 16:19*/ public interface DataSource {Connection getConnection(); }然后重点来了定义有池化的数据源然后实现DataSource接口 1.这里首先我们定义了两个全局变量activeConnectionPool活跃连接池列表和idleConnectionPool空闲连接池列表字如其意一个放活跃连接状态的连接一个放空闲状态的连接在用户获取连接时就是活跃的不使用关闭连接就是空闲的。 2.在获取连接时先获取空闲连接池里有连接没如果有直接取出来返回并删除列表这个连接即可如果没有空闲连接则创建连接创建连接以后放入活跃连接池中。 3.pushConnection回收连接方法当关闭连接调用到这里时把当前连接从活跃连接池移除然后放入空闲连接池里。当然真实的肯定是要更复杂的如果大家感兴趣呢可以去我的博客Mybatis专栏或者B站去看啦。 手写Mybatis五-全网最详细的讲解数据源连接池内容有点长关注不迷路不会你打我_哔哩哔哩_bilibili /*** Author df* Description: 有池化资源* Date 2024/3/2 16:22*/ public class PooledDatasource implements DataSource {protected final ListConnection activeConnectionPool new ArrayList();protected final ListConnection idleConnectionPool new ArrayList();Overridepublic Connection getConnection() {if (!idleConnectionPool.isEmpty()) {return idleConnectionPool.remove(0);}// 模拟获取连接Connection connection new DefaultConnection(this);activeConnectionPool.add(connection);return connection;}protected void pushConnection(Connection connection) {// 移除活跃池activeConnectionPool.remove(connection);// 放入空闲池idleConnectionPool.add(connection);} }3.3 DatasourceFactory 连接接口有啦数据源接口有啦那现在就差个入口啦我们定义数据源工厂接口DatasourceFactory定义的获取数据源方法就OK啦。 /*** Author df* Description: 数据源工厂接口* Date 2024/3/2 17:08*/ public interface DatasourceFactory {DataSource getDataSource(); }然后池化数据源工厂PooledDatasourceFactory实现DatasourceFactory接口再获取数据源的时候实例化有池化数据源。 /*** Author df* Description: 池化数据源工厂* Date 2024/3/2 17:07*/ public class PooledDatasourceFactory implements DatasourceFactory {Overridepublic DataSource getDataSource() {return new PooledDatasource();} }单元测试 怎么样其实还是蛮简单的大家可以打断点调试下就都明白啦。 /*** Author df* Description: 测试享元模式* Date 2024/3/2 17:12*/ public class TestApi {Testpublic void test_flyweight() {// 实例化数据源工厂DatasourceFactory datasourceFactory new PooledDatasourceFactory();// 通过工厂获取数据源DataSource datasource datasourceFactory.getDataSource();// 通过数据源获取连接Connection connection datasource.getConnection();// 连接关闭connection.close();// 再次获取连接Connection connection1 datasource.getConnection();//connection.close();} }
http://www.pierceye.com/news/531618/

相关文章:

  • 做推广网站的文章电动汽车排名前十名
  • 宜州网站建设服务网页生成长图 iphone
  • 网站关键词seo费用广告设计教学大纲
  • 网站开发视频 百度云自己做网站卖东西
  • 二级网站建设费用品牌广告投放
  • 西宁做网站君博认同门户网站建设实施方案
  • 外贸公司做网站该去哪里找萝岗手机网站建设
  • 网站建设的商业目的惠州网站建设培训
  • 一个网站备案多个域名吗中国建设工程信息网官网入口
  • 广告网站设计哪家快做网站一般注册哪几类商标
  • 学网站建设有前途吗网站对话窗口怎么做
  • 云南昆明做网站wordpress备份文件
  • 连云港市网站建设汕头制作手机网站
  • 印度做网站wordpress 锁定地址
  • 做网站的服务器带宽一般多少游戏开发培训机构
  • 网站设计制作培训微信开放平台文档
  • 私人申请建设网站多少钱html如何建网站
  • 网站怎么在微博推广石家庄模板建站平台
  • 贵阳网站开发方舟网络wordpress静态化链接
  • 如何建设一个公司网站英文网站建设多少钱
  • 国外做水广告网站大全app开发公司查询
  • 苏州商城网站制作免费下载ppt模板的网站有哪些
  • 北京智能网站建设企业wordpress 找源码
  • 无锡网站维护公司wordpress 目录排序
  • 自己搭建的ftp怎么做网站装修公司展厅效果图
  • 做网站手机验证收费吗百度竞价推广是什么工作
  • 电商网站 案例熊掌号怎么域名做网站
  • 做网站怎么改关键词安卓开发软件工具
  • 做SEO公司多给网站wordpress 固定链接 无法访问
  • 潍坊百度网站优化网站建设相关文章