【方向盘】jdbc使用到了哪些设计模式
作为leader,应该本着把属下培养成白骨精(白领、骨干、精英)的新去教导
本文已被https://yourbatman.cn收录;女娲Knife-Initializr工程可公开访问啦;程序员专用网盘https://wangpan.yourbatman.cn;公号后台回复“专栏列表”获取全部小而美的原创技术专栏
你好,我是方向盘(YourBatman、方哥)
相关阅读
【小家java】java5新特性(简述十大新特性) 重要一跃
【小家java】java6新特性(简述十大新特性) 鸡肋升级
【小家java】java7新特性(简述八大新特性) 不温不火
【小家java】java8新特性(简述十大新特性) 饱受赞誉
【小家java】java9新特性(简述十大新特性) 褒贬不一
【小家java】java10新特性(简述十大新特性) 小步迭代
1、概述
jdbc作为javaEE的规范之一,我们每天都在直接或者间接的使用。本章就深入分析一下,jdbc里使用到了哪些优秀的设计模式呢?
2、栗子
大家耳熟能详的听过23种设计模式。但是我估计大家最熟悉的是23这个数字,而不太熟悉内部的实现或者说是内容
1、静态工厂方法
DriverManager.getConnection(...)
2、单例模式(这里不做说明,参考我另外一篇博文:【小家java】细说java中设计模式—单例模式)
3、装饰者模式
4、桥接模式(jdbc规范使用到主要涉及的设计模式:桥接模式)
桥接模式(Bridge)是一种结构型设计模式。Bridge模式基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类承担不同的职责(单一职责体系)。它的主要特点是把抽象(Abstraction)与行为实现(Implementation)分离开来,从而可以保持各部分的独立性以及应对他们各自的功能扩展。
桥接模式的角色组成:
1.Client 调用端:见名之意,调用者嘛
2.桥接类:最重要的实现,其实没干啥事,就是管理桥接对象的一些引用。
3.Implementor:真正的实现
其实和装饰者模式很类似
3、使用场景
23种设计模式都有各自的使用场景,但是切忌为了设计而设计。最简单的代码才是最好的代码
##4、最后
桥接模式的优点:
(1)实现了抽象和实现部分的分离
桥接模式分离了抽象部分和实现部分,从而极大的提供了系统的灵活性,让抽象部分和实现部分独立开来,分别定义接口,这有助于系统进行分层设计,从而产生更好的结构化系统。对于系统的高层部分,只需要知道抽象部分和实现部分的接口就可以了。
(2)更好的可扩展性
由于桥接模式把抽象部分和实现部分分离了,从而分别定义接口,这就使得抽象部分和实现部分可以分别独立扩展,而不会相互影响,大大的提高了系统的可扩展性。
(3)可动态的切换实现
由于桥接模式实现了抽象和实现的分离,所以在实现桥接模式时,就可以实现动态的选择和使用具体的实现。
(4)实现细节对客户端透明,可以对用户隐藏实现细节。
2.桥接模式的缺点(其实都不算什么缺点)
(1)桥接模式的引入增加了系统的理解和设计难度,由于聚合关联关系建立在抽象层,要求开发者针对抽象进行设计和编程。
(2)桥接模式要求正确识别出系统中两个独立变化的维度,因此其使用范围有一定的局限性。
System.out.println("写得可还行?收藏再看吧,点个赞吧,分享下吧");
echo("关注公号【Java方向盘】 https://yourbatman.cn https://wangpan.yourbatman.cn");
console.log("私聊【方向盘】:fsx1056342982");
我是方向盘(YourBatman、方哥):一个前25年还不会写Hallo World、早已毕业的大龄程序员。网瘾失足、清考、延期毕业、房产中介、保险销售、送外卖…是我不可抹灭的黑标签
【方向盘】jdbc使用到了哪些设计模式相关推荐
- Java数据库连接库JDBC用到哪种设计模式?
桥接模式 转载于:https://www.cnblogs.com/LoganChen/p/6963943.html
- android 桥梁模式,【设计模式】桥接模式
本文主要介绍:桥接模式概念和用法. 模式背景 生活中,我们如果一个笔有三种型号:大,中,小.颜色一共有M种.如果需要所有型号都有相对应的颜色,那么就需要3*M只笔.但是如果我们转换一下:M种颜色代表M ...
- 【设计模式】通俗易懂的Java设计模式篇!
文章目录 1.设计模式的六大原则 1.1.软件设计开发原则 1.2.设计模式分类 2.创建型设计模式-单例设计模式 2.1.单例模式简介 2.2.懒汉方式实现 2.3.饿汉模式实现 2.4.JDK源码 ...
- 【2021Java最新学习路线】kvm和docker区别
第一篇:脑图篇 1.1 手绘 Spring 架构脑图 1.2 手绘 Spring5 架构脑图 1.3 手绘 Spring Security 架构脑图 1.4 手绘 Spring Boot 架构脑图 1 ...
- Java工程师必备技能
一.JavaSE (1)Java基础 1.数据结构 2.算法 3.包装类 4.字符串 5.异常处理 6.类与接口 7.泛型 8.集合 9.IO操作 10.序列化 11.迭代 12.枚举 13.prop ...
- 满满干货!mysql定时任务每天固定时间执行
Spring 全家桶: Spring 原理 Spring面试题 思维导图 面试题 Spring视频 Spring 原理 Spring特点 Spring 核心组件 Spring常用模块 Spring主要 ...
- Spring-整合JDBC-事务-远程方法调用RMI
一.spring整合JDBC spring整合jdbc使用了模版方法设计模式 定义一套规范,固定流程不变,传入可变内容 1.Maven项目添加依赖 spring-context坐标依赖 mysql驱动 ...
- Java公式编辑器开发思路,附项目源码
第一篇:脑图篇 1.1 手绘 Spring 架构脑图 1.2 手绘 Spring5 架构脑图 1.3 手绘 Spring Security 架构脑图 1.4 手绘 Spring Boot 架构脑图 1 ...
- Spring batch教程 之 读取CSV文件并写入MySQL数据库
原文作者: Steven Haines - 技术架构师 编写批处理程序来处理GB级别数据量无疑是种海啸般难以面对的任务,但我们可以用Spring Batch将其拆解为小块小块的(chunk). Spr ...
最新文章
- 干货丨人工智能、机器学习和认知计算入门指南
- jmeter响应数据Unicode编码转换为汉字
- 关于mysql服务器3306端口不能远程连接的解决
- CentOS7+CDH5.14.0安装全流程记录,图文详解全程实测-1虚拟机安装及环境初始化
- 九度OJ 1028:继续畅通工程 (最小生成树)
- 企业是否真的需要BI?
- Scala入门到精通——第二十八节 Scala与JAVA互操作
- EndNote使用技巧之一--参考文献的导入
- wagtail cms_为Wagtail做准备,这是迄今为止最好的Django CMS
- 确保河道环境_开展河道整治 改善生态环境
- mysql数据库导入操作_mysql 导入数据库 命令操作
- 虚拟机mysql创建一个表_MySQL:创建、修改和删除表
- centos 6 apt.sw.be 错误 无法yum安装软件解决方案
- Html实现Excel模板下载
- 博弈论中的几个经典问题
- 计算机校友讲座,计算机系举办优秀校友返校讲座
- caj文件打不开显示内存不足_CAJ文件打不开怎么办?
- 自动化测试之:关键字驱动
- Lens shading
- Java基础 —— 编程入门
热门文章
- Open CASCADE安装及+MFC
- count distinct
- lnk1120如何解决_Linking a C++ DLL 引发LNK1120和LNK2019问题的解决方案
- 11.小白初学日记 STM32F429 HAL库 STM32程序启动过程
- linux车牌识别,基于嵌入式Linux的电子车牌识别系统设计与实现
- openpyxl中的load_workbook()函数
- [Opencv基础]人脸磨皮
- 有没有什么大学生搜题比较好用的网站或APP
- libreCAD源码阅读笔记2
- php中相关乱码处理