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

男的直接做的视频网站毕业设计网站

男的直接做的视频网站,毕业设计网站,网站版块设计是什么意思,wordpress无法修改文章目录 前言 UML plantuml 类图 实战代码 AbstractRoutingDataSource DynamicDataSource DynamicDataSourceContextHolder 前言 在设计类时,一般优先考虑使用组合来替代继承,能够让程序更加的灵活,但这并不意味着要完全抛弃掉继承。 …

目录

前言

UML

plantuml

类图

实战代码

AbstractRoutingDataSource

DynamicDataSource

DynamicDataSourceContextHolder


前言

在设计类时,一般优先考虑使用组合来替代继承,能够让程序更加的灵活,但这并不意味着要完全抛弃掉继承。

继承在面向对象编程中用来减少代码冗余和提高复用性,是面向对象编程的一大特性。

只不过在使用继承时必须满足一些条件,才能让我们更好地利用继承,设计出更易维护和扩展的程序。

一般情况下,使用继承需要满足一下两个条件

  1. 父类所有的属性和方法,都能在子类中适用
  2. 子类无需复用其他类的方法,并且不会覆写父类已有的方法

模板方法模式是继承使用的优雅示例,一般会设计一个抽象类,在类中定义了一个操作的算法结构,其中一些步骤被设计为抽象方法,需要子类去实现,这些方法被称为模板方法。

模板方法允许子类在不改变算法结构的情况下,重新定义算法的某些特定步骤。

UML

plantuml

@startuml
'https://plantuml.com/class-diagramabstract Template {+ doSomething() : void- step1() : void- step2() : void+ {abstract} step3() : void
}class Concrete {+ step3() : void
}class Client {}Template <|-- ConcreteClient ..> Concrete
@enduml

类图

实战代码

AbstractRoutingDataSource

业务上需要用到动态数据源,可以继承 spring 框架提供的抽象类 AbstractRoutingDataSource 来实现运行中动态切换数据源功能。

初始化动态数据源时,将所有的数据源都保存在 private Map<Object, DataSource> resolvedDataSources 中,每一个数据源对应一个唯一标识

抽象类定义了决定目标数据源的方法(determineTargetDataSource),用来决定当前操作要使用动态数据源中的哪一个数据源,方法中调用了模板方法(determineCurrentLookupKey),子类只需要实现 determineCurrentLookupKey 这个模板方法,动态地返回数据源唯一标识,便能够实现动态切换数据源了

determineTargetDataSource 与 determineCurrentLookupKey

DynamicDataSource

public class DynamicDataSource extends AbstractRoutingDataSource {public DynamicDataSource(DataSource defaultTargetDataSource, Map<Object, Object> targetDataSources) {super.setDefaultTargetDataSource(defaultTargetDataSource);super.setTargetDataSources(targetDataSources);super.afterPropertiesSet();}@Overrideprotected Object determineCurrentLookupKey() {return DynamicDataSourceContextHolder.getDataSourceType();}
}

DynamicDataSourceContextHolder

public class DynamicDataSourceContextHolder {/*** 使用ThreadLocal维护变量,ThreadLocal为每个使用该变量的线程提供独立的变量副本,*  所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。*/private static final ThreadLocal<String> CONTEXT_HOLDER = new ThreadLocal<>();/*** 设置数据源变量* @param dataSourceType*/public static void setDataSourceType(String dataSourceType){System.out.printf("切换到{%s}数据源", dataSourceType);CONTEXT_HOLDER.set(dataSourceType);}/*** 获取数据源变量* @return*/public static String getDataSourceType(){return CONTEXT_HOLDER.get();}/*** 清空数据源变量*/public static void clearDataSourceType(){CONTEXT_HOLDER.remove();}
}
http://www.tj-hxxt.cn/news/42050.html

相关文章:

  • 无锡网站建设哪家做抖音seo运营模式
  • crntos wordpress驻马店百度seo
  • 网站建设员是做什么的资源网
  • 用react和ant.d做的网站例子seo是什么意思电商
  • 域名网站开发有意义吗企业网络推广计划书
  • 代做效果图的网站好精准营销平台
  • 招聘网站排行榜营销推广网站
  • 网站购买云空间seo大全
  • 页面设计简单吗seo网站推广方案策划书
  • 抖音网站开发网站免费搭建
  • 北京医疗网站建设免费发帖推广平台
  • 没有网站百度推广吗免费优化网站
  • 广东多地通报疫情郑州官网关键词优化公司
  • 用dw制作网站模板下载地址聊城网站推广公司
  • 宁波建网站费用上海seo优化公司
  • 建设银行ETC的网站是哪个应用商店下载
  • 政府网站建设 报价网站关键词优化有用吗
  • 开发app的网站搜索引擎营销的特征
  • 温岭自适应网站建设合肥关键词排名推广
  • 网站建设包括什么科目windows优化大师免费
  • 网站建设全部流程图武汉seo 网络推广
  • 用sublime text做网站关键词优化搜索引擎
  • 网站改版做301广告投放推广平台
  • 官网网站建设研究seo 视频
  • 做网站设计师要提供什么深圳百度seo怎么做
  • 品牌网站建设策划书品牌运营策略
  • 重庆品质网站建设销售营销型网站建设报价
  • 扬州网站建设公元国际sem优化是什么意思
  • 医疗网站做药品是干嘛神马seo教程
  • 企业建站公司方案重庆优化seo