设计模式
文章平均质量分 72
huangshulang1234
这个作者很懒,什么都没留下…
展开
-
23种设计模式(22)-状态模式
23种设计模式(22)-状态模式一、概述 当系统中某个对象存在多个状态,这些状态之间可以进行转换,而且对象在不同状态下行为不相同时可以使用状态模式。状态模式将一个对象的状态从该对象中分离出来,封装到专门的状态类中,使得对象状态可以灵活变化。状态模式是一种对象行为型模式。二、适用场景 用于解决系统中复杂对象的多种状态转换以及不同状态下行为的转载 2018-01-28 10:07:52 · 207 阅读 · 0 评论 -
Java 单例以及单例所引发的思考
Java 单例以及单例所引发的思考前言前几天无意中看到一篇文章,讲到了老生常谈的单例,抱着复习一下的心态点了进去,还是那些熟悉的内容,可是却发现自己思考的角度变了,以前更多的是去记忆,只停留在表面,而现在更多的是去思考为什么会这么做。所以今天我也来总结一下 Java 中常见的单例,并记录下自己的思考。2正文Java 中常见的几类单例:饿汉式单例转载 2018-01-27 09:49:47 · 241 阅读 · 0 评论 -
5分钟彻底理解23种设计模式
5分钟彻底理解23种设计模式今天看到一份不错的设计模式介绍,非常好理解,作者是谁我没有办法考证,但是所有权是属于原作者的,我只是放在这里,便于自己理解查找,也便于大家查找,没有任何商业用途! 作者很有意思,写的很友善,全部是追女孩子的,把技术类的写的这么形象,不错,废话少说,直接上:创建型模式 1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的转载 2018-01-19 09:27:51 · 883 阅读 · 0 评论 -
23种设计模式(21)-享元模式
23种设计模式(21)-享元模式在阎宏博士的《JAVA与模式》一书中开头是这样描述享元(Flyweight)模式的:❈Flyweight在拳击比赛中指最轻量级,即“蝇量级”或“雨量级”,这里选择使用“享元模式”的意译,是因为这样更能反映模式的用意。享元模式是对象的结构模式。享元模式以共享的方式高效地支持大量的细粒度对象。❈Java中的String类型转载 2018-01-05 10:39:26 · 191 阅读 · 0 评论 -
23种设计模式(20)-中介者模式
23种设计模式(20)-中介者模式定义:用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互。类型:行为类模式类图:中介者模式的结构中介者模式又称为调停者模式,从类图中看,共分为3部分:抽象中介者:定义好同事类对象到中介者对象的接口,用于转载 2018-01-05 10:27:46 · 218 阅读 · 0 评论 -
23种设计模式(19)-责任链模式
23种设计模式(19)-责任链模式定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。类型:行为类模式类图:首先来看一段代码:public void test(int i, Request request){ if(i==1){转载 2018-01-05 09:09:28 · 204 阅读 · 0 评论 -
23种设计模式(18)-备忘录模式
23种设计模式(18)-备忘录模式定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态。类型:行为类类图:我们在编程的时候,经常需要保存对象的中间状态,当需要的时候,可以恢复到这个状态。比如,我们使用Eclipse进行编程时,假如编写失误(例如不小心误删除了几行代码)转载 2018-01-05 09:09:08 · 165 阅读 · 0 评论 -
23种设计模式(17)-命令模式
23种设计模式(17)-命令模式定义:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。类型:行为类模式类图:命令模式的结构 顾名思义,命令模式就是对命令的封装,首先来看一下命令模式类图中的基本结构:Command类:是一个抽象类,类转载 2018-01-05 09:08:48 · 187 阅读 · 0 评论 -
java设计模式【全】
java设计模式【全】首先祝大家周末开心,设计模式终于完了,链接放在这里,需要的可以学习一下。公众号内回复“设计模式”,可以获取23种设计模式的下载链接,有兴趣的同学拿去。公众号做了一个比较大的改动,老朋友都知道公众号在菜单栏整理了一些系列历史文章,包括springboot,Vue,设计模式,java基础,笔试面试等等。但是文章越来越多,公众号提供的菜单栏文章数量有转载 2018-01-28 10:09:46 · 246 阅读 · 0 评论 -
设计模式之代理模式
设计模式之代理模式代理模式属于结构性模式。代理模式的定义代理模式为其他对象提供一种代理以控制对这个对象的访问。从定义可以知道代理模式控制客户端对一个对象的访问,它跟现实中的中介代理类似,只是作为代表做一些受理工作,真正执行的并不是它自己。代理模式的结构代理模式代理模式中的角色:抽象主题 Subject:声明了目转载 2018-02-26 09:54:33 · 293 阅读 · 0 评论 -
java 设计模式 常用21种
java 设计模式 常用21种1.创造型:抽象工厂[java] view plain copypackage com.seezoon.创建型.抽象工厂; /** * 抽象工厂 * @author DF *工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序, *必须对工厂转载 2018-04-06 09:55:45 · 799 阅读 · 0 评论 -
Java设计模式学习06——静态代理与动态代理
Java设计模式学习06——静态代理与动态代理一、代理模式为某个对象提供一个代理,从而控制这个代理的访问。代理类和委托类具有共同的父类或父接口,这样在任何使用委托类对象的地方都可以使用代理类对象替代。代理类负责请求的预处理、过滤、将请求分配给委托类处理、以及委托类处理完请求的后续处理。二、代理模式结构UML类图:由上图代理模式的结构为转载 2018-04-05 17:11:08 · 159 阅读 · 0 评论 -
谈谈java代理模式的认识二——动态代理(JDK)
谈谈java代理模式的认识二——动态代理(JDK)让我们就接着上篇博客的静态代理来开始今天的动态代理。一、动态代理 静态代理需要在运行之前就写好代理类,这样就造成了代码的大量重复,所以我们通过动态代理在运行时期动态生成业务类的代理类,那么动态代理类是如何实现的呢? 动态代理类的字节码在程序运行时由Java反射机制动态生成转载 2018-04-05 09:10:47 · 168 阅读 · 0 评论 -
谈谈JAVA的代理模式认识 一——为什么使用代理模式
谈谈JAVA的代理模式认识 一——为什么使用代理模式一、中介隔离作用 代理模式,第一次接触它,是在学习.Net的时候看的一本书,叫做《大话设计模式》,至今已快三年了。相信看过这本书的同学们,都记得书中的代理模式,就是为他人做嫁衣裳的故事。好,我们回归代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理转载 2018-04-05 09:09:59 · 221 阅读 · 0 评论 -
Java单例模式的七种写法
Java单例模式的七种写法第一种(懒汉,线程不安全): public class Singleton { private static Singleton instance; private Singleton (){} public static Singleton getInstance(转载 2018-03-23 16:16:48 · 164 阅读 · 0 评论 -
单例模式与垃圾回收
单例模式与垃圾回收本文作者:愤怒的韭菜原文:http://blog.csdn.net/zhengzhb/article/details/7331354Jvm的垃圾回收机制到底会不会回收掉长时间不用的单例模式对象,这的确是一个比较有争议性的问题。将这一部分内容单独成篇的目的也是为了与广大博友广泛的讨论一下这个问题。讨论命题:当一转载 2018-03-05 09:13:53 · 364 阅读 · 0 评论 -
外观模式
外观模式一、概念介绍 外观模式(Facade),他隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。这种类型的设计模式属于结构性模式。为子系统中的一组接口提供了一个统一的访问接口,这个接口使得子系统更容易被访问或者使用。 二、角色及使用场景 简单来说,该模式就是把一些复杂的流程封装成一个接口供给外部用户更简单的使用。这个转载 2018-03-07 09:24:47 · 171 阅读 · 0 评论 -
快速回顾,浅谈mvc思想
快速回顾,浅谈mvc思想百科全名是Model View Controller,模型(model)-视图(view)-控制器(controller)的缩写,一种设计模式(Design pattern),也就是一种解决问题的方法和思路2目的使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式;指转载 2018-02-27 09:30:37 · 225 阅读 · 0 评论 -
23种设计模式(16)-访问者模式
23种设计模式(16)-访问者模式定义:封装某些作用于某种数据结构中各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。类型:行为类模式类图:访问者模式可能是行为类模式中最复杂的一种模式了,但是这不能成为我们不去掌握它的理由。我们首先来看一个简单的例子,代码如下clas转载 2018-01-05 09:08:22 · 184 阅读 · 0 评论 -
23种设计模式(15)-解释器模式
23种设计模式(15)-解释器模式定义:给定一种语言,定义他的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中句子。类型:行为类模式类图: 解释器模式是一个比较少用的模式,本人之前也没有用过这个模式。下面我们就来一起看一下解释器模式。解释器模式的结构转载 2018-01-04 09:51:45 · 197 阅读 · 0 评论 -
23种设计模式(4)-生成器模式
23种设计模式(4)-生成器模式定义: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。生成器模式利用一个导演者对象和具体建造者对象一个一个地建造出所有的零件,从而建造出完整的对象。四个要素: Builder:生成器接口,定义创建一个Product对象所需要的各个部件的操作。转载 2018-01-03 10:24:46 · 196 阅读 · 0 评论 -
23种设计模式(3)-原型模式
23种设计模式(3)-原型模式定义: 通过复制现有的对象实例来创建新的对象实例。实现:实现Cloneable接口: Cloneable接口的作用是在运行时通知虚拟机可以安全地在实现了此接口的类上使用clone方法。在java虚拟机中,只有实现了这个接口的类才可以被拷贝,否则在运行时会抛出CloneNotSuppor转载 2018-01-03 10:24:31 · 232 阅读 · 0 评论 -
23种设计模式(2)-工厂模式
23种设计模式(2)-工厂模式定义: 工厂模式是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。 工厂模式根据抽象程度的不同分为三种:简单工厂模式(也叫静态工厂模式)转载 2018-01-03 10:24:11 · 191 阅读 · 0 评论 -
23种设计模式(1)-单例模式
23种设计模式(1)-单例模式定义: 单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例。即一个类只有一个对象实例。特点: 1、单例类只能有一个实例。 2、单例类必须自己自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例转载 2018-01-03 10:23:50 · 172 阅读 · 0 评论 -
架构设计基础知识整理
架构设计基础知识整理来源:https://blog.dreamtobe.cn/2016/10/25/oo_architecture/原则灵活运用,而非刻意遵循1. 基础原则尽量少的重复代码,低耦合(尽量小的影响),高内聚模块,可小到一个类,大到一个系统模块间耦合因素转载 2017-12-17 21:56:39 · 265 阅读 · 0 评论 -
Java设计模式-代理模式
Java设计模式-代理模式作者:Jet啟思链接:https://juejin.im/post/5a1e7ae16fb9a0451170e446一、代理模式定义 为其它对象提供一个代理对象,并由代理对象控制这个对象的访问。特点1)很直接的,实现同一个接口或者继承同一个抽象类。2)代理对象控制对被代理对象的访问。UML转载 2017-12-23 10:05:43 · 279 阅读 · 0 评论 -
Java设计模式-责任链模式
Java设计模式-责任链模式作者:Jet啟思链接:https://juejin.im/post/5a126b146fb9a0450c490201今天来说说程序员小猿和产品就关于需求发生的故事。前不久,小猿收到了产品的需求。产品经理:小猿,为了迎合大众屌丝用户的口味,我们要放一张图,要露点的。小猿:......露点?你大爷的,让身为正义与纯转载 2017-12-23 10:04:27 · 288 阅读 · 0 评论 -
Java开发中的23种设计模式详解
设计模式(Design Patterns)——可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式转载 2017-10-31 09:39:51 · 480 阅读 · 0 评论 -
23种设计模式(5)-适配器模式
23种设计模式(5)-适配器模式定义:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 角色:目标(Target)角色:这就是所期待得到的接口,也就是这类的接口是符合我们要求的。 源(Adapee)角色:我们要使用的接口,但是这个接口不符合我们的要求,也就是现在需要适配的转载 2018-01-03 10:25:04 · 176 阅读 · 0 评论 -
23种设计模式(6)-装饰者模式
23种设计模式(6)-装饰者模式定义: 在不必改变原类文件和原类使用的继承的情况下,动态地扩展一个对象的功能。 它是通过创建一个包装对象,也就是用装饰来包裹真实的对象来实现。角色: 抽象构件角色(Project):给出一个接口,以规范准备接收附加责任的对象。 具体构件角色(Employe):定义一个将要接收附加转载 2018-01-04 09:48:47 · 165 阅读 · 0 评论 -
23种设计模式(14)-迭代器模式
23种设计模式(14)-迭代器模式定义:提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节。类型:行为类模式类图:如果要问java中使用最多的一种模式,答案不是单例模式,也不是工厂模式,更不是策略模式,而是迭代器模式,先来看一段代码吧:public static void print(Collectio转载 2018-01-04 09:51:29 · 170 阅读 · 0 评论 -
23种设计模式(13)-观察者模式
23种设计模式(13)-观察者模式23种设计模式的学习视频已为大家备好,需要的可以在公众号内回复“设计模式”获取下载链接。定义:定义对象间一种一对多的依赖关系,使得当每一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新。类型:行为类模式类图: 在软件系统中经常会有这样转载 2018-01-04 09:51:14 · 181 阅读 · 0 评论 -
23种设计模式(12)-模版方法模式
23种设计模式(12)-模版方法模式定义:定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法中的某些特定步骤。类型:行为类模式类图: 事实上,模版方法是编程中一个经常用到的模式。先来看一个例子,某日,程序员A拿到一个任务:给定一个整数数组,把数转载 2018-01-04 09:50:59 · 203 阅读 · 0 评论 -
23种设计模式(11)-策略模式
23种设计模式(11)-策略模式23种设计模式的学习视频已为大家备好,需要的可以在公众号内回复“设计模式”获取下载链接。定义:定义一组算法,将每个算法都封装起来,并且使他们之间可以互换。类型:行为类模式类图: 策略模式是对算法的封装,把一系列的算法分别封装到对应的类中,并且这些类实现相同的接口转载 2018-01-04 09:50:42 · 168 阅读 · 0 评论 -
23种设计模式(10)- 组合模式
23种设计模式(10)- 组合模式23种设计模式的学习视频已为大家备好,需要的可以在公众号内回复“设计模式”获取下载链接。介绍组合模式又叫做部分-整体模式,它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以向处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解藕.组合模式可以优化处理递归或分级数据结构.有许多转载 2018-01-04 09:50:23 · 184 阅读 · 0 评论 -
23种设计模式(9)- 桥接模式
23种设计模式(9)- 桥接模式介绍桥接模式 (Bridge)将抽象部分与实现部分分离,使它们都可以独立的变化。桥接模式是一种结构式模式。结构代码实现Implementor : 定义实现接口。interface Implementor { // 实现抽象部分需要的某转载 2018-01-04 09:50:08 · 189 阅读 · 0 评论 -
23种设计模式(8)-外观模式
23种设计模式(8)-外观模式定义: 为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。角色: 1,外观(Facade)角色 :客户端可以调用这个角色的方法。此角色知晓相关子系统的功能和责任。在正常情况下,本角色会将所有从客户端发来的请求委派到相应的子系统去转载 2018-01-04 09:49:54 · 162 阅读 · 0 评论 -
23种设计模式(7)-代理模式
23种设计模式(7)-代理模式定义: 为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用 角色:1, 抽象角色:声明真实对象和代理对象的共同接口。2, 代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供转载 2018-01-04 09:49:35 · 173 阅读 · 0 评论 -
JAVA 设计模式学习总结
JAVA 设计模式学习总结一、概述二、7个设计原则三、创建型模式(5种)四、结构型模式(7种)五、行为型模式(11种)六、总结前言:熟练地掌握设计模式,并能在实际编程开发中灵活运用它们,不仅能使代码更规范,重用性更高,同时也能保证代码的可靠性,提高开发效率。总结如下,还需多多的实践,路漫漫其修远兮,吾将上下而求索,加油!一、概述面向对象编程有七转载 2018-04-06 09:57:17 · 436 阅读 · 0 评论