![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
善守的大龙猫
昔之善战者,先为不可胜,以待敌之可胜。不可胜在己,可胜在敌。故善战者,能为不可胜,不能使敌之必可胜。故曰:胜可知,而不可为!
成为专家!成为专家!
展开
-
适配器模式
结构型模式描述如何将类或者对象结合在一起形成更大的结构。适配器模式用于将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作,其别名为包装器。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。适配器模式包含四个角色:目标抽象类定义客户要用的特定领域的接口;适配器类可以调用另一个接口,作为一个转换器,对适配者和抽象目标类进行适配,它是适配器模式的核心;适配者类是被适配的角色,它定义了一个已经存在的接口,这个接口需要适配;原创 2024-07-15 23:29:06 · 844 阅读 · 0 评论 -
谈谈你知道的设计模式?请手动实现单例模式 , Spring 等框架中使用了哪些模式?
使用构建器模式,可以比较优雅地解决构建复杂对象的麻烦,这里的“复杂”是指类似需要输入的参数组合较多,如果用构造函数,我们往往需要为每一种可能的输入参数组合实现相应的构造函数,一系列复杂的构造函数会让代码阅读性和可维护性变得很差。因为装饰器模式本质上是包装同类型实例,我们对目标对象的调用,往往会通过包装类覆盖过的方法,迂回调用被包装的实例,这就可以很自然地实现增加额外逻辑的目的,也就是所谓的“装饰”。所以,可以看出,即使是看似最简单的单例模式,在增加各种高标准需求之后,同样需要非常多的实现考量。原创 2023-12-18 21:47:16 · 936 阅读 · 0 评论 -
UML类图
类与类之间的主要关系有3种:1.依赖:上班和公交车的关系,上班需要坐公交车,但是每次的车并不一定是同一辆车。2.继承:包括继承与接口实现3.关联:聚合:大雁 与 雁群的机会组合:人体 与 大脑的关系。...原创 2021-02-13 02:07:14 · 109 阅读 · 0 评论 -
用策略模式和工厂模式代替if else ,让代码更优雅
用策略模式和工厂模式代替if else ,让代码更优雅原创 2021-02-09 23:55:44 · 698 阅读 · 1 评论 -
建造者模式
建造者模式的使用场景是用来按照步骤创建复杂对象。原创 2021-02-09 22:51:03 · 120 阅读 · 1 评论 -
关于设计模式的一个想法
设计模式我自己看了学了很长时间,感觉掌握的还是一般,思考了很久,到底是什么原因呢?还是没有真正的运用到工作中,没有真正地掌握,现在有个想法,就是把Spring中使用的设计模式好好研究下,有两个原因,第一就是Spring我用了很长时间,可以说是还是非常熟,不会产生畏惧感,另外一个就是知道了设计模式真正的用法,对掌握设计模式很有帮助。这个记录一下,后续慢慢完善这个系列。...原创 2021-02-09 16:35:56 · 86 阅读 · 0 评论 -
依赖倒置原则
程序设计原则:依赖倒置原则 (Dependency Inversion Principle)要依赖抽象,不要依赖具体类。首先这个原则听起来很像是“针对接口编程,不针对实现编程”,的确很相似,然而这里更加抢到“抽象”。这个原则说明了,不能让高层组件依赖底层组件,而且,不管高层或底层组件,“两者”都应该依赖于抽象。几个指导方针帮助你遵循此原则:变量不可以持有具体类的引用。 如果使用new,就会持有具体类的引用。你可以改用工厂来避开这样的做法。不要让类派生自具体类。如果派生自具体类,你就会依赖具体类。原创 2021-02-09 14:55:47 · 61 阅读 · 0 评论 -
工厂模式
简单工厂模式:原创 2021-02-08 10:31:53 · 90 阅读 · 0 评论 -
装饰模式
装饰者模式动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。星巴克的咖啡场景是比较好的装饰模式的例子。原创 2021-02-07 13:48:36 · 61 阅读 · 0 评论 -
策略模式
策略模式定义了算法族,分别封装起来,让它们可以互相替换,此模式让算法的变化独立于使用算法的客户。原创 2021-02-06 23:09:43 · 56 阅读 · 0 评论 -
开发实践设计原则
1.找到应用中可能需要变化之处,把它们独立出来,不要和那些不需要的变化的代码混在一起。原创 2021-02-06 22:52:56 · 103 阅读 · 0 评论 -
观察者模式
每种设计模式都是为了解决一个场景的问题,所以学习设计模式之前,都必须清楚这种设计模式是解决什么问题。观察者模式是用来解决多个信息面板消息推送的场景。原创 2021-02-06 20:48:22 · 87 阅读 · 0 评论 -
懂得设计模式
学习设计模式,首先要了解什么时候会需要这种设计模式。适配器模式的应用场景是有些类是被发现而不是被开发出来的情况,这时候我们不敢动原来的类的结构,但是我们又想使用他们的功能,这时候就需要利用适配器模式了,适配器模式是利用组合模式,把被发现的类包装进适配器类。...原创 2021-01-17 01:55:50 · 102 阅读 · 0 评论 -
单例模式的四种推荐方式
静态内部类的特点:1)当外部类Singleton进行类装载时,静态内部类是不会被装载的2)当调用Singleton的getInstance()方法,用到了静态变量INSTANCE时,静态类才会被装载,且只会装载一次。在装载时,线程是安全的。class Singleton{ private Singleton() {} //写一个静态内部类,该类中有一个静态属性Singleton //jvm机在装载类的时候是线程安全的 private static class SingletonInsta原创 2020-11-21 22:04:59 · 189 阅读 · 2 评论 -
单例模式--双重检查锁
单例模式分为饿汉式和懒汉式。饿汉式是事先分配内存,提前创建。这样的方式为到位占用资源,当这种比较多时,会占用很多内存。懒汉式是在被调用的时候进行。这种在并发时又会导致问题。比较稳妥的办法是在懒汉式的基础上加上锁,然后进行双重检查,这种SpringIOC容器式单例也是用这种双重检查来避免线程冲突导致的问题。public class Singleton { private volatil...原创 2020-04-30 11:19:37 · 383 阅读 · 0 评论