
设计模式
文章平均质量分 80
只有达到了足够的代码量才能真实体会设计模式之美,否则都是纸上谈兵
默辨
希望成为一个有思想的软件工程师
展开
-
浅谈全局视角下的设计模式
我在前期学习设计模式的过程中,总都会陷入代码的设计细节,总想理性的区别出不同设计模式在方法、类和接口上的继承、组合和实现等关联关系,最终发现很多设计模式在代码风格上极为相似。当然,今天的我也并非否定曾经的自己,我认为学习一个东西,从0到1总会经历一个过程,在不断深入研究学习的基础上,不同阶段对同一个事物总会有新的认识,没有曾经那些不妥当的认识和理解,学习又怎会让我们感受到成长的快乐?原创 2023-04-09 18:48:57 · 590 阅读 · 3 评论 -
浅谈责任链设计模式在框架源码中的运用
写在前面,该篇博文为我在部门的技术分享,分享时长约40分钟。以至于文章中更多的只有源代码截图,更多细节为现场口述。本文更像是一个大纲,通过6+3个真实的责任链代码实现,为我们能够灵活运用责任链设计模式添砖加瓦。希望对你有帮助!原创 2022-12-14 00:06:11 · 1040 阅读 · 0 评论 -
适配器模式(Gateway中GatewayFilter和GlobalFilter整合实现)
适配器模式(Gateway中GatewayFilter和GlobalFilter整合实现)原创 2022-11-22 23:52:27 · 810 阅读 · 0 评论 -
设计模式分类
文章目录设计模式分类1、概述2、分类设计模式分类1、概述设计模式是程序员在面对同类软件工程设计问题所总结出来的有用的经验,模式不是代码,而是某类问题的通用解决方案,设计模式(Design pattern)代表了最佳的实践。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式的本质提高 软件的维护性,通用性和扩展性,并降低软件的复杂度。设计模式并不局限于某种语言,java,php,c++ 都有设计模式。设计模式七大基本原则《设计模式》 是经典的书,作者是原创 2021-06-18 10:13:14 · 144 阅读 · 0 评论 -
终于分清楚依赖、泛化、实现、关联、聚合和组合了
文章目录UML图之类图1、概述2、类图3、类图——依赖关系(Dependence)4、类图——泛化关系(Generalization)5、类图——实现关系(Implementation)6、类图——关联关系(Association)7、类图——聚合关系(Aggregation)8、类图——组合关系(Composition)9、总结该篇博文根据原尚硅谷讲师韩顺平老师的课程——尚硅谷Java设计模式(图解+框架源码剖析)整理而出UML图之类图1、概述1)UML——Unified modeling原创 2021-06-17 17:57:25 · 4985 阅读 · 5 评论 -
设计模式七大原则
文章目录1、设计模式概述1.1、设计模式的目的1.2、设计模式七大原则1.3、核心思想2、单一职责原则(Single Responsibility Principle)2.1、概述2.2、测试案例2.2、注意事项3、接口隔离原则(Interface Segregation Principle)3.1、概述3.2、测试案例4、依赖倒转原则(Dependence Inversion Principle)4.1、概述4.2、测试案例4.3、依赖关系传递的三种方式4.4、注意事项5、里氏代换原则(Liskov Su原创 2021-06-07 22:02:13 · 186 阅读 · 0 评论 -
责任链模式
责任链模式:Chain Of Responsibility1、概述顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。可以类比想象一下上级审批文件,需要一级一级的往上走。优点:1、降低耦合度。它将请求的发送.原创 2021-03-14 22:12:07 · 281 阅读 · 0 评论 -
模板方法模式
模板方法模式:Template Method定义一个操作的算法骨架,将一些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。这个模板方法就可以理解为我们高中的英语作文,我们一般都会储备一个范文,在真正考试写作文的时候,我们直接将背好的范文不变的那部分直接写上去。作文的主体内容部分,再根据作文的主题进行一个具体的修改。我们在这里就是用了模板方法模式,背好的范文就是模板方法,契合主题部分的作文内容就是具体的子类。模板方法是一个十分简单的设计模式,我们可以.原创 2021-03-03 23:15:40 · 222 阅读 · 2 评论 -
单例模的懒加载分析
写在前面:之前也学习过单例模式,也看了很多的视频,也写过一点点总结。但是还是有疑问,特别是对于懒加载的概念。很多视频都是说,基于饿汉式的不足,引入了懒汉式懒加载的特带你。对于最初的我来说,我仅仅靠记忆来记忆特性,但是没有理解它的具体含义:饿汉式嘛,饿了就要吃饭,不会等,所以就直接加载;懒汉式嘛,太懒惰了,所以有吃的也不一定会去马上吃…基于此,这篇单例模式博文进一步讲讲懒汉式和饿汉式的区别,希望对你和我都有帮助!!!文章目录1、单例模式概述2、饿汉式1.1、直接实例化(静态变量版)1.2、使用.原创 2020-06-10 08:50:00 · 1134 阅读 · 0 评论 -
桥接模式
桥接模式桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构模型,又称为柄体(Handle and Body)模式或者接口(Interface)模式1、设想场景:电脑有不同地类型,并且含有不同地品牌。可以使用继承地方式,新建一个具体品牌的电脑类,然后继承一种电脑类型(台式电脑、台式电脑、掌上电脑)。或者新建一个具体的类型电脑,然后继承一个品牌。具体类的模型如下...原创 2020-03-12 10:49:46 · 290 阅读 · 0 评论 -
适配器模式
概述将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不不能一起工作的那些类可以在一起工作场景设想你的电脑没有网线的接口,你需要购买转换器,来连接网线的接口,继而完成上网角色分析:目标用户:客户所期待的接口,目标可以是具体的或抽象的类,也可以是接口需要适配的类:需要适配的类或者适配器类适配器:通过包装一个需要适配的对象,把原接口转换成目标对...原创 2020-03-11 17:59:15 · 214 阅读 · 0 评论 -
建造者模式
建造者模式定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示作用:在用户不知道对象的建造过程和细节的情况下,可以直接创建复杂的对象优点:产品的建造和表示分离,实现了解耦。使用建造者模式可以使客户端不必要知道产品内部组成的细节将复杂产品的创建步骤分截在不同的方法中,使得创建过程更加清晰具体的建造者之间使相互独立的,这有利于系统的扩展。增加新的具...原创 2020-03-08 17:23:37 · 251 阅读 · 0 评论 -
代理模式
代理模式即Proxy Pattern,23种java常用设计模式之一。代理模式的定义:对其他对象提供一种代理以控制对这个对象的访问。代理模式也是SpringAOP的底层代理模式分类:静态代理动态代理1、静态代理角色分析:抽象角色(Rent):一般使用接口或者抽象类真实角色(Host):被代理的真实角色代理角色(Proxy):中介,真实的代理的角色,且其一般还会添加...原创 2020-03-07 15:45:23 · 198 阅读 · 0 评论 -
原型模式
原型模式原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。1、使用方法实现Cloneable接口重写clone方法其中clone()是一个本地方法protected native Object clone() throws CloneNotSupportedException;...原创 2020-03-07 10:41:21 · 246 阅读 · 0 评论 -
工厂模式+抽象工厂模式
工厂模式1、概述核心实例化对象不使用new,用工厂方法代替将选择实现类,创建对象统一管理和控制。从而将调用者跟我们的实现类解耦工厂模式满足的OOP原则:开闭原则:一个软件的实体应当对扩展开放,对修改关闭依赖倒置原则:要针对接口编程,不要针对实现编程迪米特法则:只与你直接的朋友通信,而避免和陌生人通信三种模式:简单(静态)工厂模式用来生产同一等级结构中...原创 2020-03-05 15:00:53 · 259 阅读 · 0 评论 -
单例模式
单例模式1、概述核心作用:保证一个类只有一个实例,并且提供一个访问该实例的全局访问点常见场景:Window的任务管理器Window的回收站项目中,读取配置文件的类,一般也只有一个对象,没必要每次都去new对象读取网站的计数器一般也会采用单例模式,可以保证同步数据库连接池的设计一般也是单例模式在Servlet编程中,每个Servlet也是单例的在Spring中,每个B...原创 2020-03-04 21:44:48 · 270 阅读 · 0 评论