
设计模式
文章平均质量分 76
Java全栈研发大联盟
好记性不如烂笔头,好好学
展开
-
设计模式--责任链模式
「责任链模式」 是一种行为设计模式, 允许你将请求沿着处理者链进行发送。收到请求后, 每个处理者均可对请求进行处理, 或将其传递给链上的下个处理者。这里我举个例子说明下‘’假设现在有一个闯关游戏,进入下一关的条件是上一关的分数要高于xx1、 游戏一共3个关卡;2、 进入第二关需要第一关的游戏得分大于等于80;3、 进入第三关需要第二关的游戏得分大于等于90;代码如下:那么如果这个游戏有100关,我们的代码很可能就会写成这个样子这种代码不仅冗余,并且当我们要将某两关进行调整时会对代码非常大的改动,这原创 2022-06-25 16:39:06 · 643 阅读 · 1 评论 -
还学不会“策略模式”,我请你下馆子好吧!
Java全栈研发大联盟专注Java全栈技术,数据结构和算法,计算机网络,操作系统,计算机组成原理、设计模式等等公众号hello,大家好,今天是星期五,明天就要周末啦,大家放松一下吧,小慕也得放松下,但是今天还是得学习的呀,今天给大家分享的内容是“策略模式”。如标题所说,学不会的话,我请你下馆子好吧一、啥是策略模式?策略模式(Strategy Pattern):定义一系列算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化,也称为政策模...原创 2021-06-05 13:38:15 · 409 阅读 · 0 评论 -
面试必问:设计模式篇
面试必问:设计模式篇1. 单例模式保证系统中一类只有一个实例并且提供对外访问。其优点是:由于在系统内存中只存在一个对象,故可以节约系统资源,对于一些需要频繁创建和销毁的对象,单例模式无疑可以提高系统的性能;其缺点是:由于单例模式中没有抽象层,因此单例类的扩展有很大的困难。多用于web应用设计以及各种池的设计。实现要点是:构造函数私有化,类定义中含有一个该类的静态私有对象,以及一个暴露单例...原创 2020-01-10 11:34:29 · 2623 阅读 · 0 评论 -
常用设计模式
小疑问: 上面说的优点中,为什么只有一个线程能加载,其他线程需要等待,从哪里看出保证线程安全的呢?原创 2019-03-04 14:14:35 · 1000 阅读 · 0 评论 -
策略模式
1.什么是策略模式?定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。说到策略模式就不得不提及OCP(Open Closed Principle) 开闭原则,即对扩展开放,对修改关闭。策略模式的出现很好地诠释了开闭原则,有效地减少了分支语句。2.策略模式代码(解释:避免了频繁地在代码后面加if else )此代码通过模拟不同会...原创 2018-12-10 13:28:01 · 454 阅读 · 0 评论 -
原型模式
1.什么是原型模式?(解释:理解成spring框架里的bean scope=“prototype”,其实原型模式就是多例(用克隆实现的多例))使用原型实例指定要创建对象的类型,通过复制这个原型来创建新对象。小疑问:浅拷贝和深拷贝,以及string这种特殊引用类型的浅拷贝是如何的?...原创 2018-12-09 20:58:42 · 512 阅读 · 0 评论 -
外观模式
1.什么是外观模式?(解释:说白了就是封装多个操作成一个操作)外观模式(Facade Pattern)门面模式,隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。2.举例说明用户注册完之后,需要调用阿里短信接...原创 2018-12-09 18:31:41 · 628 阅读 · 0 评论 -
适配器模式
1.什么是适配器?(解释:就理解成我们平时所说的“转换器”即可,还可以理解成“披着羊皮的狼”)在设计模式中,适配器模式(英语:adapter pattern)有时候也称包装样式或者包装(wrapper)。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。2.适配器分类适配器分为,类适配器、对象适配、接口适配方...原创 2018-12-09 14:00:12 · 495 阅读 · 0 评论 -
模板模式
1.什么是模板方法?模板方法模式:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的,重复代码全部在父类里面,不同业务的,抽取给子类进行实现。抽取过程—抽象方法。(解释一下:通俗的来说就是父类中的一部分操作定义成抽象的,交给子类来实现)见代码:①首先,定义一个模板。模板中把办理业务用作核心部分,让子类来实现。其他公共的相同的部分保留...原创 2018-12-08 20:09:59 · 461 阅读 · 0 评论 -
建造者设计模式
1.建造者模式分析重点:和工厂模式的不同就是建造者模式是强调有顺序的1 ) 先创建一个具体的产品对象类:②然后再写抽象建造者类(定义了产品的创建方法和返回方法)③要写具体建造者(实现上面的抽象接口,具体实现构建和装配各个部件),可以写多个不同的具体建造者④接着编写指挥者类建造者模式的结构中还引入了一个指挥者类Director,该类的作用主要有两个:一方面它隔离了客户与生产过程;...原创 2018-12-08 18:25:54 · 764 阅读 · 0 评论 -
代理模式
1.代理的分类静态代理(静态定义代理类)动态代理(动态生成代理类)Jdk自带动态代理Cglib 、javaassist(字节码操作库)1.静态代理(静态代理会生成代理类对象)什么是静态代理?由程序员创建或工具生成代理类的源码,再编译代理类。所谓静态也就是在程序运行前就已经存在代理类的字节码文件,代理类和委托类的关系在运行前就确定了。静态代理代码:IUserDao类 publ...原创 2018-10-26 13:11:38 · 491 阅读 · 0 评论 -
工厂模式
1. 什么是工厂模式?实现了创建者和调用者分离,工厂模式分为简单工厂、工厂方法、抽象工厂模式2.工厂模式好处工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。利用工厂模式可以降低程序的耦合性,为后期的维护修改提供了很大的便利。将选择实现类、创建对象统一管理和控制。从而将调用者跟我们的实现类解耦。3.工厂模式分类简单工厂模式(重点是一个工厂中的各种产品,创建...原创 2018-10-09 17:57:19 · 756 阅读 · 0 评论 -
单例设计模式
1.饿汉式:类初始化时,会立即加载该对象,线程天生安全,调用效率高。(spring里面的是饿汉式)2.懒汉式: 类初始化时,不会初始化该对象,真正需要使用的时候才会创建该对象,具备懒加载功能。3.静态内部方式:结合了懒汉式和饿汉式各自的优点,真正需要对象的时候才会加载,加载类是线程安全的。4.枚举单例: 使用枚举实现单例模式 优点:实现简单、调用效率高,枚举本身就是单例,由jvm从根本上提供...原创 2018-10-09 13:10:23 · 666 阅读 · 0 评论