Java设计模式
大树的困惑
这个作者很懒,什么都没留下…
展开
-
LRU算法java实现
LRU算法java实现 LRU算法是一种缓存淘汰策略 比如我们的电脑或者手机,在内存有限的情况下,它仅会将最近使用过的文档,文件,程序缓存在内存中… 以及我们手机中后台应用的排序,也是更具最新使用情况进行排序的 Leetcode中有关于LRU的题目,基于这道题进行探讨 设计和构建一个“最近最少使用”缓存,该缓存会删除最近最少使用的项目。缓存应该从键映射到值(允许你插入和检索特定键对应的值),并在初始化时指定最大容量。当缓存被填满时,它应该删除最近最少使用的项目。 它应该支持以下操作: 获取数据 get 和原创 2021-04-18 23:04:19 · 577 阅读 · 2 评论 -
双向链表java简单实现增删改
双向链表java简单实现增删改 比起单向链表,双向链表基于节点Node 类多了一个可以追溯上一个节点的引用pre,多了这个引用针对删除增加等这些操作,都比较方便,这里记录一下简单的java实现过程 package DataStrct.linklist; /** * @author luke * @date 2021/4/1819:32 */ public class DoubleLinkelistDemo { public static void main(String[] args) {原创 2021-04-18 20:28:46 · 250 阅读 · 3 评论 -
单项链表java简单实现
单向链表 概念懂得都懂,不懂的是上面的人为了保护你,让你少知道点东西比较好,毕竟这东西你说它重要也确实重要,说他不重要也确实没那么重要,但是我觉得挺重要的.复制粘贴太损耗社会劳动力了, 通过节点类Node的next引用下一个节点的一种数据结构, 记录复习一下实现方法 package DataStrct.linklist; /** * @author luke * @date 2021/4/1812:43 */ public class SinglelinklistDemo { public原创 2021-04-18 20:25:13 · 259 阅读 · 3 评论 -
学习笔记-装饰模式
装饰模式 说是装饰模式,所以装饰器就需要通过某种方法,与被装饰的对象产生连系 在网上看到有人把装饰模式比作买奶茶 所谓的基类就是绿茶,红茶,奶茶 在这个的基础上,你要添加柠檬,珍珠…就是后来的装饰 我觉得是比较形象的,这里通过几个简单的例子 定义父接口 package it.luke.decorator.simaple; /** * @author luke * @Title: ${file_name} * @Package ${package_name} * @date 2020/7/1923原创 2020-07-20 01:08:24 · 282 阅读 · 0 评论 -
学习笔记-Spring解析xml并注册
Spring解析xml并注册 Spring 有两大特性IOC 和 AOP 在两者的基础之上,Spring还需要解析xml配置文件,注册bean才能实现完整的IOC和AOP Spring是如何解析xml和注册的呢 我分为几个阶段 1.资源路径(***.xml)定位 2.解析资源,并封装到beanDefinition中 3.将beanDefinition添加到BeanFactory 4.这个时候就可以通过BeanFactory 去创建对象 直接从源码开始学习. package it.luke.aop; imp原创 2020-05-25 00:31:33 · 349 阅读 · 0 评论 -
学习笔记-观察者模式
观察者模式 没有营养的话: 在学习观察者模式的时候 观察者模式分为两大部分 被观察者和观察者 对于这两大部分,可以在生活中找到很多对应的关系,视观察的对象对场景有很大的不一样 比如,被观察者是微博的大V,那么观察者就是关注他的粉丝,大V发出动态,他的粉丝就会收到反馈 被观察者是一名嫌疑犯的时候,那么观察者就是警察,嫌疑犯有任何可疑的动静的时候,警察都可以收到反馈 之前在学习观察者模式的时候,容易和消息中间件的那种生产订阅模式混淆,其实他们不一样 和生产订阅的那种模式很像但是又没有那种模式那么解耦 观察者原创 2020-05-17 20:00:35 · 349 阅读 · 0 评论 -
学习笔记-Spring-aop中proxy代理模式
从前面学习的Proxy代理模式中,发现,spring-aop中相关功能与proxy是重合的,所以本次通过从动态代理的方向,去了解spring-aop (个人理解)AOP:面向切面编程,一个 工程其中包括很多个组件,每个组件都有自己的独特的功能,除了每个组件中自己的独特功能外,他们可能还共同承担这其它相似的功能,比如日志、事务管理和安全这样的核心服务,在调用不同组件的过程中,触发的这些逻辑 我们知道如果通过java api中的proxy类进行代理的化,可以通过实现同一个接口,然后通过接口去动态生成代理类.原创 2020-05-10 23:51:08 · 517 阅读 · 0 评论 -
学习笔记-Java代理模式的动态代理的原理理解
在学习代理模式的过程中,特别是调用javaAPI的动态代理Proxy这个类的时候,发现程序会自动生成代理类,于是乎对于他是如何生成,以及生成之后存放在哪里产生了好奇. //通过设置这个参数,可以将程序动态生成的代理保存下来 System.getProperties().put("sun.misc.ProxyGenerator.saveGeneratedFiles", "true"); public...原创 2020-05-03 18:24:34 · 467 阅读 · 0 评论 -
学习笔记-proxy代理模式
proxy代理模式 proxy代理模式,让我们可以通过中间代理类去操作被代理类的一些处理,让操作者不直接操作对象类 就好比明星和经纪人的关系(参考别人博客的说法),除了明星自己的独特的演出,或者唱歌,需要调用对象本身,其余的拉赞助,接通告等其它的事情可以交给经纪人去做. 这里的经济人就相当于代理 为什么要用代理模式 当我们要对某一个方法进行增强时,比如对某个方法计算他的效率,打印开始结束日志等...原创 2020-04-26 22:10:58 · 347 阅读 · 0 评论 -
学习笔记-单例模式
单例模式 单例模式,保障内存中只有一个对象 在实际的工作中,常常会用到一些配置类等等,这些类不需要多个对象, 所以通过单例模式可以减少无用对象的创建 单例模式的设计仅仅只能防止正常创建对象的方式进行创建,如果是以反射的方法进行创建对象的话是没办法的 饿汉式 饿汉式便是无论我调用与否,他都会在内存中加载该对象且只能一个 package it.luke.singleton; /* * 饿汉式 * 单...原创 2020-04-19 21:51:46 · 270 阅读 · 0 评论