![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 50
23种设计模式汇总
胡歌_北京分歌
菜鸟养成计划
展开
-
【设计模式】【结构型7-1】【代理模式】【动态代理】【静态代理】
可以看到 调用代理人方法 最终代理人服务被代理的对象 进行了前后包夹 无死角环绕。代理 是结构型 通过继承,或者实现相同的接口来进行增强和监控。经典的使用 spring aop,mybatis dao层。作用:可以增加功能 而不破坏现有代码结构,一定程度的解耦。原创 2024-06-26 17:53:59 · 733 阅读 · 0 评论 -
【设计模式】【创建型5-5】【原型模式】
用途,以原型为模板,源源不断的创建(克隆 clone)对象。当直接创建对象的代价比较大时,则采用这种模式。代码使用:spring框架里 bean的作用域。原创 2024-06-26 17:33:27 · 360 阅读 · 0 评论 -
【设计模式】【创建型5-4】【建造者模式】
我们可以隐藏构造细节。给外部提供简单的接口就能构建对象。builder 链式调用创建对象就是建造者模式的使用。可以在不同的构建过程中使用相同的建造者。构建复杂对象的时候使用 提高代码的可读性。如上 就是实际的使用。原创 2024-06-26 17:29:30 · 310 阅读 · 0 评论 -
【设计模式】【创建型5-2】【工厂方法模式】
对数据库的操作基本都是一致的。但是数据库的产品是不一样的,mysql oracle ,可以考虑工厂方法。:定义工厂方法所创建的对象的接口。:声明工厂方法,返回一个产品对象。:实现工厂方法,返回具体产品实例。产品 具体的产品,工厂 具体的工厂。:实现产品接口的具体类。原创 2024-06-26 17:11:43 · 428 阅读 · 0 评论 -
【设计模式】【创建型5-1】【单例模式】
此时 第一个创建了新的对象返回 如果没有第二次判空校验 那么 第二个会在第一个释放锁以后 重新创建对象 这就是有问题的 此时如果有判空的话 可以避免此场景。代码中 假设两个线程 都通过了第一判空 阻塞在synchronized锁上 其中一个获取锁成功 另外一个阻塞,比如要在内存里记录一些东西。可能使用饿汉模式直接存储。使用双重锁校验模式,创建线程池。为什么要做双重锁校验。一般配置只能有一份。原创 2024-06-26 16:34:55 · 413 阅读 · 0 评论