设计模式
文章平均质量分 85
本专栏记录了23种设计模式,学会融汇贯通运用在自己的项目中.
豆豆的java之旅
终身学习,成就不一样的自我!
展开
-
史上最全23种设计模式导航(干货)
史上最全、最完整设计模式,详细介绍了23种设计模式的使用以及优缺点,使用场景。原创 2023-12-22 13:46:47 · 640 阅读 · 0 评论 -
设计模式---中介者模式
一般来说,在软件开发中,类之间的关系是非常复杂的,往往每个类中都有很多其他对象的引用,形成一张复杂的网状结构,显得非常混乱,软件6大设计原则的迪米特法则告诉我们,一个类应尽可能的少于其他类发生交互,尽量提供一个中间类来完成,那么我们的中介者模式就是迪米特法则最好的实现。中介者模式是行为型设计模式的一种,它的原始定义是:定义一个单独(中介)的对象,来封装一组对象之间的交互,将这组对象之间的交互委派给中介对象交互,避免对象直接交互。原创 2023-12-21 23:16:15 · 1161 阅读 · 0 评论 -
设计模式----解释器模式
解释器模式使用频率并不高,通常用来构建一个简单语言的语法解释器,它只在一些非常特定的领域被用到,比如编译器、规则引擎、正则表达式、sql解析等。解释器模式是行为型设计模式之一,它的原始定义为:用于定义语言语法规则表示,并提供解释器来处理句子中的语法。我们通过一个例子来解释下解释器模式,假设我们设计一个软件来进行加减计算,我们第一想法就是使用工具类,提供对应的加法和减法的工具方法。return a+b;......原创 2023-12-21 21:11:06 · 971 阅读 · 0 评论 -
设计模式---命令模式
命令模式属于行为型设计模式的一种,它的原始定义为:命令模式将请求(命令)封装为一个对象,这样可以使用不同的请求(命令)封装参数化对象(将不同请求依赖注入到其他对象),并且能够支持请求命令的排队执行、记录日志、撤销等功能。命令模式的核心是将指令信息封装成一个对象,并且将此对象作为参数发送 给接收方去执行,达到使命令的请求与执行方解耦,双方只通过传递各种命令对象来完成操作。在实际开发中,如果你用到的编程语言并不支持用函数作为参数来传递,那么就可以借助命令模式将函数封装为对象来使用。原创 2023-12-20 21:35:15 · 806 阅读 · 0 评论 -
设计模式----备忘录模式
①提供了一种状态恢复的实现机制,使得用户可以方便的回到一个特定的历史步骤,当新的状态无效或者存在问题的时候,可以使用暂时存储起来的备忘录,将状态复原。②备忘录实现了对信息的封装,一个备忘录对象是一种发起者状态的表示,不会被其他代码所改动,备忘录保存了发起者的状态,采用集合存储备忘录可以实现多次撤销的操作。原创 2023-12-19 23:00:00 · 392 阅读 · 0 评论 -
设计模式----访问者模式
①扩展性好:在不修改对象结构中元素的情况下,为对象结构中的元素添加新的功能。②复用性好:通过访问者来定义整个对象结构的通用功能,从而提高复用程度③分离无关行为:通过访问者来分离无关行为,把相关的行为封装在一起,构成一个访问者,这样每一个访问者的功能都比较单一。原创 2023-12-19 10:16:04 · 823 阅读 · 0 评论 -
设计模式----迭代器模式
迭代器模式是我们平常开发中很少用到的一种设计模式,但编码实现时却经常实现,在绝大多数编程语言中,迭代器已经成为一个基础类库,直接用来遍历集合对象,在平常开发中,我们更多的是直接使用它,而不是从零实现一个迭代器。迭代器模式是行为性设计模式之一,又叫游标模式,它的原始定义为:迭代器提供一种对容器对象中的各个元素进行访问的方法,而又不需要暴漏该对象的内部细节。在软件系统中,容器对象拥有两个职责,一是存储数据,二是遍历数据。从依赖性上来看,前者是聚合对象的基本职责,而后者是可以变化的,又是可以分离的。原创 2023-12-18 21:24:22 · 388 阅读 · 0 评论 -
设计模式----状态模式
①将所有与某个状态有关的行为放到一个类中,并且可以方便的增加新的状态,只需要改变对象的状态即可改变对象的行为。②允许状态转换逻辑与状态对象合成一体,而不是某个巨大的条件语句块。原创 2023-12-18 00:28:23 · 131 阅读 · 0 评论 -
设计模式-------责任链模式
责任链模式是行为型模式的一种,它的原始定义是:避免将一个请求发送者与接收者耦合在一起,让多个对象都有机会处理请求,将接收请求的对象连城一条链,并且沿着这条链传递请求,直到有一个对象能够处理它为止。在责任链模式中,多个处理器(也就是定义中说的接收对象)依次处理同一个请求, 一个请求先经过A处理器处理,然后交由B处理器处理,B处理器处理完在交给C处理器,依此类推,链条上的每个处理器各自承担各自的处理职责,所以叫做职责链模式。①降低了对象之间的耦合度:该模式降低了请求者和发送者的耦合度。原创 2023-12-14 22:23:04 · 60 阅读 · 0 评论 -
设计模式----策略模式
①策略类之间可以自由切换,由于策略类都是实现同一个接口,所以使他们之间可以自由切换②易于扩展,增加一个新的策略只需要新增一个类实现策略类即可,基本不改变原有代码,符合开闭原则③避免使用多层if--else,充分体现面向对象设计思想。原创 2023-12-14 20:09:24 · 79 阅读 · 0 评论 -
设计模式-----享元模式
优点1、减少对象的创建 ,降低内存中对象的数量 ,降低系统的内存 ,提高效率;2、减少内存之外的其它资源占用。缺点:1、关注内、外部状态、关注线程安全问题;2、使系统、程序复杂化。享元模式其实就是工厂模式的一个改进机制,享元模式同样要求创建一个或一组对象,并且就是通过工厂方法生成对象的,不同的地方在于享元模式增加了缓存的功能。主要的使用场景:当程序中需要创建大量的相似对象时,可以使用享元模式来共享相同的内部状态,减少对象的重复创建,节省内存开销。原创 2023-11-27 16:07:39 · 67 阅读 · 0 评论 -
设计模式-----组合模式
组合模式的定义是:将对象组合成树形结构以表示正规部分的层次结构,组合模式可以让用户统一对待单个对象和对象组合。透明组合模式中,抽象根节点角色中声明了所有用于管理1对象成员的方法,比如类图中声明了add,remove,getChildren方法,这样做的好处是确保所有构件类有相同的接口,透明组合模式也是组合模式的标准形式.原创 2023-11-26 13:09:34 · 58 阅读 · 0 评论 -
设计模式------外观模式
外观模式属于结构性模式的一种,它隐藏了系统的复杂性,提供统一的接口供外部调用,这个接口可以使子系统更容易得被使用和访问,简而言之就是将几个细粒度的类或系统组合成一个粗粒度的统一外观者,由外部调用,外观者可以灵活的进行组合以及可以有多个外观者。要点:1. 外观模式为复杂子系统提供了一个简单接口,并不为子系统添加新的功能和行为。2. 外观模式实现了子系统与客户之间的松耦合关系。3. 外观模式没有封装子系统的类,只是提供了简单的接口。如果应用需要,它并不限制客户使用子系统类。原创 2023-11-24 15:45:50 · 53 阅读 · 0 评论 -
设计模式------适配器模式
适配器模式是结构性设计模式之一,它的原始定义是将类的接口转换为客户期望的另一个接口,适配器可以让两个不兼容的类一起协同工作。适配器有两种:①类适配器:使用继承关系实现,耦合度高②对象适配器:使用组合关系实现,耦合度低①将目标类和适配者类进行解耦,通过引入一个适配器类来重用现有的适配者类,无需修改原有结构②增加类的透明性和复用性,将具体业务实现过程封装在适配器类中,对于客户端而言是透明的,而且提高了适配者的复用性,同一个适配类可以在多个不同的系统中复用。原创 2023-11-24 11:07:13 · 69 阅读 · 0 评论 -
设计模式------装饰者模式
装饰者模式是结构性模式之一,它可以在不改变原有功能的基础上将新的功能扩展到对象上,它提供了比继承更有弹性的替代方案,它的核心是功能扩展,使用装饰器模式可以透明且动态的扩展功能。装饰器模式可以动态给对象添加一些额外的职责从而实现功能的拓展,在运行时选择不同的装饰器,从而实现不同的行为;比使用继承更加灵活,通过对不同的装饰类进行排列组合,创造出很多不同行为,得到功能更为强大的对象;符合“开闭原则”,被装饰类与装饰类独立变化,用户可以根据需要增加新的装饰类和被装饰类,在使用时再对其进行组合,原有代码无须改变。原创 2023-11-23 15:47:13 · 49 阅读 · 0 评论 -
设计模式------桥接模式
桥接模式定义:将抽象部分与实现部分分离,使他们都可以独立的变化。桥接模式用一种巧妙的方式处理多层继承问题。用抽象关联来取代传统的多层继承,将类之间的静态继承关系转变为动态的组合关系,使的系统更加灵活,有效的控制了系统中类的个数。原创 2023-11-22 23:13:14 · 51 阅读 · 0 评论 -
设计模式------代理模式
在软件开发中,由于一些特殊的原因,客户端不能访问或者不能直接访问一个类,需要引入一个中间角色来完成操作,此种方式便叫做代理模式。代理模式原始的定义是:让你能够提供对象的替代品或者占位符,代理对象控制着对原始对象的访问,并允许将请求提交给对象前后进行一些处理,通俗的来说代理模式就是在不改变源代码的基础上,对类进行增强,Spring框架的aop就是通过代理实现的。原创 2023-11-22 11:16:52 · 51 阅读 · 0 评论 -
设计模式概述
循序渐近学设计模式,史上最全设计模式详解原创 2023-11-15 23:51:40 · 56 阅读 · 0 评论 -
设计模式之设计原则
设计模式的前提是设计原则,并且依赖于设计原则,设计原则是设计要求,设计模式是具体实现,设计原则主要有6个,主要有①单一职责原则②开闭原则③里氏替换原则④依赖到置原则⑤接口隔离原则⑥迪米特法则。原创 2023-11-17 14:15:44 · 49 阅读 · 0 评论 -
设计模式------单例模式
史上最全的设计模式之----单例模式原创 2022-05-24 19:02:18 · 549 阅读 · 0 评论 -
设计模式------工厂模式
设计模式之工厂模式,详细介绍了工厂模式的几种类型以及实现方式。原创 2022-06-09 18:09:43 · 244 阅读 · 0 评论 -
设计模式------建造者模式
建造者模式作为创建型模式之一,有着广泛的应用,它一般用来创建复杂的对象,他将复杂的对象的构建与他的表示进行分离,使得同样的创建过程可以有不用的表示;通俗的来将就是,建造者模式将一个简单的对象一步步按不同的顺序封装为复杂的对象。当需要创建一些特定的对象,但是它们拥有共同的组成部分时,比如:一个房子可以由个个部件:框架、墙、窗户等,这些部件可以组合起来构造完整的房子。原创 2023-11-20 17:17:46 · 97 阅读 · 0 评论 -
设计模式------原型模式
通过故事的方式层层深入讲解原型模式,史上最全原型模式,一看就懂,一学就会原创 2023-11-21 13:45:01 · 49 阅读 · 0 评论 -
设计模式------代理模式
一,简介代理模式是java常用的设计模式之一,它为目标类提供一个代理类,由代理类在原有的基础上进行增强,意味着不会改变原有的核心代码,就跟我们常说的中介是一样的.举个例子:作为程序员的我,一直单身,每逢过节回家,父母就会安排媒人来介绍姑娘进行相亲,这个时候媒人会安排姑娘进行见面,这个过程中,姑娘充当的角色是我们的目标对象,而媒人充当的就是我们的中介(代理),由媒人安排详情,进一步考虑如果我与姑娘一见钟情了,那避免不了结婚,因此会找婚姻办事处去处理我们的结婚计划,比如宴席,婚姻流程等等...原创 2022-05-26 17:44:23 · 254 阅读 · 0 评论