设计模式
文章平均质量分 92
seaReal1
这个作者很懒,什么都没留下…
展开
-
spring 中装饰器模式使用以及装饰器详解
第五种:包装器(Decorator)在我们的项目中遇到这样一个问题:我们的项目需要连接多个数据库,而且不同的客户在每次访问中根据需要会去访问不同的数据库。我们以往在spring和hibernate框架中总是配置一个数据源,因而sessionFactory的dataSource属性总是指向这个数据源并且恒定不变,所有DAO在使用sessionFactory的时候都是通过这个数据源访问数据库。转载 2018-05-09 13:26:46 · 6593 阅读 · 1 评论 -
java 代理模式与装饰模式极其相识,有点定位上的区别
代理模式 vs 装饰模式https://www.cnblogs.com/luoxn28/p/5535877.html 代理模式和装饰模式有很大的相似性,二者的类图(几乎)是一样的。下面分别讲解代理模式和装饰模式。1、代理模式 一般著名的跑步运动员都会有自己的代理人,如果想联系该运动员的比赛事宜,可以直接联系他的代理人就可以了。转载 2018-05-09 13:55:40 · 161 阅读 · 0 评论 -
模板方法
第九种:模板方法(Template Method)定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。Template Method模式一般是需要继承的。这里想要探讨另一种对Template Method的理解。spring中的JdbcTemplate,在用这个类时并不想去继承这个类,因为这个类的方法太...转载 2018-05-09 14:19:30 · 218 阅读 · 0 评论 -
hashmap 原理
https://blog.csdn.net/yqlakers/article/details/76113730术语定义术语英文解释哈希算法hash algorithm是一种将任意内容的输入转换成相同长度输出的加密方式,其输出被称为哈希值。哈希表hash table根据设定的哈希函数H(key)和处理冲突方法将一组关键字映象到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,...转载 2018-05-11 10:30:27 · 139 阅读 · 0 评论 -
虚函数
虚函数(Virtual Function)是通过一张虚函数表来实现的。简称为V-Table。在这个表中,主要是一个类的虚函数的地址表,这张表解决了继承、覆盖的问题,保证其真实反应实际的函数。这样,在有虚函数的类的实例中分配了指向这个表的指针的内存,所以,当用父类的指针来操作一个子类的时候,这张虚函数表就显得尤为重要了,它就像一个地图一样,指明了实际所应该调用的函数。...原创 2018-05-14 10:46:49 · 193 阅读 · 0 评论 -
函数式编程特征
闭包和高阶函数函数编程支持函数作为第一类对象,有时称为闭包或者仿函数(functor)对象。实质上,闭包是起函数的作用并可以像对象一样操作的对象。与此类似,FP 语言支持高阶函数。高阶函数可以用另一个函数(间接地,用一个表达式) 作为其输入参数,在某些情况下,它甚至返回一个函数作为其输出参数。这两种结构结合在一起使得可以用优雅的方式进行模块化编程,这是使用 FP 的最大好处。 [4] 惰性计算除了...原创 2018-05-14 10:49:04 · 358 阅读 · 0 评论 -
eclipse+drools
clipse下搭建Drools规则引擎环境插件下载地址:http://download.jboss.org/drools/release/1、点开对应的版本文件,选择标红的两个压缩包下载,其他的如有需要也可以自行选择: 2、将下载的压缩包解压,这边放到了E:\tools\drools目录下,打开eclipse,Help->Install New SoftWare->add,选择 E:/...转载 2018-06-12 18:58:28 · 268 阅读 · 0 评论 -
排课问题解决思路
2018-6-15 一个课程连续四节这种问题,用soft/hard约束,或者在move上下文章,感觉效率都不行,想了一辙,把连续四节看成一大节,那么上午/下午的时间槽就剩一个了,计算应该会非常快,把剩下的边边角角重新组织再算一遍。嗯,coding right now...view the result....原创 2018-06-14 10:38:00 · 5026 阅读 · 0 评论 -
排课输入条件
其中,前两条硬性要求靠下面代码解决: @ProblemFactCollectionProperty private List<CourseConflict> calculateCourseConflictList() { List<CourseConflict> courseConflictList = new ArrayList<>(); ...原创 2018-06-11 10:06:42 · 492 阅读 · 0 评论