编程学习之路
文章平均质量分 82
以java为引,进入编程行业深耕。
星河梦LH
这个作者很懒,什么都没留下…
展开
-
设计模式-责任链模式
是一种行为设计模式, 允许你将请求沿着处理者链进行发送。收到请求后, 每个处理者均可对请求进行处理, 或将其传递给链上的下个处理者。使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。请求者,包含名字和金额。比如审核报销的金额。实际场景中,财务审批就是一个责任链模式。请求者处理器不同的审核人配置责任链,将不同的handler组成起来然后我们在客户端进行调用。原创 2024-05-08 00:20:17 · 383 阅读 · 1 评论 -
设计模式-适配者模式
可以让任何两个没有关联的类一起运行。提高了类的复用,可以一致化多个不同接口。将现有接口实现类隐藏,增加了类的透明度。灵活性高,可自由适配。过多地使用适配器,会让系统非常零乱,不易整体进行把握。比如,明明看到调用的是 A 接口,其实内部被适配成了 B 接口的实现,一个系统如果太多出现这种情况,无异于一场灾难。因此如果不是很有必要,可以不使用适配器,而是直接对系统进行重构。某些适配工作可能非常困难,例如让房子飞起来。当我们有动机地修改一个正常运行的系统的接口,这时应该考虑使用适配器模式。原创 2024-05-06 23:50:25 · 1545 阅读 · 0 评论 -
设计模式-代理模式
静态代理:需要代理类和目标类都实现接口的方法,从而达到代理增强其功能。JDK动态代理:需要代理类实现某个接口,使用Proxy.newProxyInstance方法生成代理类,并实现InvocationHandler中的invoke方法,实现增强功能。Cglib动态代理:无需代理类实现接口,使用Cblib中的Enhancer来生成代理对象子类,并实现MethodInterceptor中的intercept方法,在此方法中可以实现增强功能。原创 2024-05-04 18:07:34 · 1513 阅读 · 1 评论 -
设计模式--单例模式
② 恰好在这个时候, 另一个线程B来了, CPU将执行权切换给了B —— 此时A还没来得及创建出实例, 所以线程B在判断instance == null的时候, 结果还是true, 所以线程B也会进入if语句去创建实例;① 在并发获取实例的时候, 线程A调用getInstance(), 在判断instance == null时得到true的结果, 之后进入if语句, 准备创建instance实例;由于我们上面直接对象获取实例的方法加锁,导致某个线程访问这个方法时,每个线程都会被挂起等待,比较浪费资源。原创 2024-05-03 22:45:17 · 643 阅读 · 0 评论 -
动态规划-爬楼梯
climbStairs(n - 1) 和climbStairs(n - 2) 他们之间存在大量重复的计算。在这里 climbStairs(n - 1),n减一在减一之后为2 这里得计算climbStairs(2)的值。在climbStairs(n - 2)里,n-2 后 也得计算一遍 climbStairs(2),当 n原创 2024-05-01 22:21:02 · 143 阅读 · 2 评论