![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 94
ShuSheng007
人活着要有梦想,万一实现了呢!
展开
-
秒懂设计模式之观察者模式(Observer Pattern)
观察者模式是一个非常常用且影响巨大的设计模式,又称为发布-订阅模式。之所以迟迟不愿意扫盲这个设计模式,一来是因为其太过于常见,且思想简单;二来自己水平有限,观察者模式应用如此广泛,影响如此之深远,变种如此之繁多,不敢造次。但评论区小伙伴们很多催更这个模式,值此疫情下的端午佳节,窝在家中就嘚嘚几句吧。其思想非常简单,例如广大码农对shusheng007写的设计模式专栏很感兴趣,于是订阅了此专栏,当shusheng007在此专栏发布了一篇新的讲述观察者模式的文章,码农兄弟们立马就收到了通知,如下图所示。...原创 2022-06-04 23:07:47 · 3312 阅读 · 5 评论 -
秒懂设计模式之迭代器模式(Iterator Pattern)
[版权申明] 非商业目的注明出处可自由转载博文地址:出自:shusheng007设计模式汇总篇,一定要收藏:永不磨灭的设计模式(有这一篇真够了,拒绝标题党)文章目录概述类型难度定义使用场景实例相应接口实现客户端使用技术要点总结总结概述迭代器模式如此常用,以至于很多编程语言都默认实现了此模式,所以虽然我们天天都在用迭代器模式,但却很少有自己实现的机会。其核心动机是为了在迭代一个容器对象的同时不暴露其内部细节,这啥意思呢?例如ArrayList类,当我们需要迭代它的元素的时候,我们不可能.原创 2021-06-14 16:40:27 · 2506 阅读 · 4 评论 -
秒懂设计模式之访问者模式(Visitor Pattern)
[版权申明] 非商业目的注明出处可自由转载博文地址:出自:shusheng007设计模式汇总篇,一定要收藏:永不磨灭的设计模式(有这一篇真够了,拒绝标题党)文章目录概述类型难度定义使用场景UML 类图实例第一步:构建Element第二步:构建ObjectStructure第三步:构建Visitor客户端使用访问者模式要点总结双分派(dispatch)优缺点优点缺点总结概述访问者模式可以说是GOF23中设计模式中最复杂的一个,但日常开发中使用频率却不高,所以说上帝喜欢简洁!增删改查虽然简单,.原创 2021-06-12 14:34:59 · 1756 阅读 · 2 评论 -
秒懂设计模式之备忘录模式(Memento Pattern)
[版权申明] 非商业目的注明出处可自由转载博文地址:出自:shusheng007设计模式汇总篇,强烈建议要点赞收藏:永不磨灭的设计模式(有这一篇真够了,拒绝标题党)概述备忘录模式听起来特别高深,其实可能写过几年代码的都不知不觉的用了很多次了。模式的名称其实已经很形象的反映出其作用了:就是为了在某一时刻把当前的状态记录下来,以后再恢复到那时的状态。类型行为型(behavioral)难度2颗星定义在不破坏封闭的前提下捕获一个对象的内部状态,并在该对象之外保存这个状态,从而可以将对象.原创 2021-05-31 23:35:45 · 1571 阅读 · 0 评论 -
秒懂设计模式之单例模式(Singleton Pattern)
概述单例模式可能是GOF 23种设计模式中最简单的一种了,用的也最多。模式本身没啥讲的,无奈为了专栏的完整性,强行说几句吧。咱们就说说Java中单例模式的多种写法吧,再聊聊你喜欢哪一种,为什么?类型创建型(creational)难度1颗星定义某个类只有一个实例,且自行实例化并向整个系统提供此实例你是不是觉的终于有一个可以看得懂的设计模式的定义拉?如果是这样,说明你本来对它就比较熟悉。使用场景当你希望整个系统运行期间某个类只有一个实例时候UML这里有一张图,看见了吗?图在你心中原创 2021-05-26 21:19:06 · 2637 阅读 · 16 评论 -
秒懂设计模式之原型模式(Prototype Pattern)
概述原型模式属于创建型模式,所以它是描述如何创建对象的模式。顾名思义,先搞一个原型对象出来,然后在这个原型对象的基础上修修补补弄出一个新对象来。使用场景当一个对象的构建代价过高时。例如某个对象里面的数据需要访问数据库才能拿到,而我们要多次构建这样的对象。当构建的多个对象,均需要某种原始状态时,就可以使用原型对象保存这种原始状态,其他对象基于原型对象来修改。《江城子·密州出猎》----------------------------------------------------------原创 2021-05-13 23:03:45 · 6740 阅读 · 6 评论 -
秒懂设计模式之外观模式(Facade Pattern)
[版权申明] 非商业目的注明出处可自由转载博文地址:出自:shusheng007设计模式汇总篇,一定要收藏:永不磨灭的设计模式(有这一篇真够了,拒绝标题党)文章目录概述类型难度定义使用场景UML 类图实例第一步,确定需要调用的子模块第二步,创建外观类第三步,客户端使用技术要点总结优缺点优点缺点总结概述Facade Pattern 有时也翻译成面板模式,是一个使用频率极高的设计模式。思想非常简单,对外提供简单的交互接口,隐藏内部的复杂性。这在现实世界实在是太常见了,只要世界发生了混乱,这个.原创 2021-05-05 23:54:55 · 1892 阅读 · 0 评论 -
秒懂设计模式之享元模式(Flyweight Pattern)
[版权申明] 非商业目的注明出处可自由转载博文地址:出自:shusheng007设计模式汇总篇,一定要收藏:永不磨灭的设计模式(有这一篇真够了,拒绝标题党)文章目录概述类型难度定义使用场景UML类图实例第一步,定义一个共享对象通用的接口第二步,实现需要共享的对象类第三步,共享对象工厂第四步,客户端使用技术要点总结优缺点优点缺点总结概述也许你会觉得享元模式比较陌生,但是相信在你的软件开发生涯中应该不知不觉的用了很多次,只是你没有总结。例例如你肯定用到过缓存,用到过对象池…不知道作为IT猿的.原创 2021-05-05 16:09:57 · 1915 阅读 · 3 评论 -
秒懂设计模式之组合模式(Composite Pattern)
[版权申明] 非商业目的注明出处可自由转载博文地址:出自:shusheng007设计模式汇总篇,一定要收藏:永不磨灭的设计模式(有这一篇真够了,拒绝标题党)文章目录概述类型难度定义使用场景UML类图实例第一,设计一个个体与组合通用的接口第二,组合类第三,叶子节点第四,客户端技术要点总结优缺点优点缺点总结概述组合模式出镜率不算特别高,但是一旦出境说明这个问题如果不使用它将变得非常困难。Android的View体系的设计方式就是组合模式非常经典的成功案例。类型结构型(structural).原创 2021-05-04 17:58:49 · 2643 阅读 · 0 评论 -
秒懂设计模式之状态模式(State Pattern)
[版权申明] 非商业目的注明出处可自由转载博文地址:出自:shusheng007设计模式汇总篇,一定要收藏:永不磨灭的设计模式(有这一篇真够了,拒绝标题党)概述状态模式在日常开发中是一个非常实用的模式,可以将你的代码逼格迅速提升一个档次,所以让我们开始今天的卓越之旅吧。类型行为型(behavioral)难度3颗星定义当一个对象内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。定义对于初学者没啥用,因为字都认识却无法理解其中的含义。必须等学完了,回过头来看才能更加深.原创 2021-05-03 14:09:08 · 2728 阅读 · 5 评论 -
秒懂设计模式之适配器模式(Adapter Pattern)
[版权申明] 非商业目的注明出处可自由转载博文地址:出自:shusheng007设计模式汇总篇,一定要收藏:永不磨灭的设计模式(有这一篇真够了,拒绝标题党)文章目录概述类型难度定义使用场景UML类图实例第一,确定目标接口第二,三方库接口及实现第三,构建适配器类第四,客户端使用技术要点总结优缺点优点缺点总结概述由于面向对象程序设计本身就是从实际生活中汲取的灵感,将大千世界抽象到程序设计领域,所以所有的设计模式都是可以在日常生活中感受的到的。例如适配器模式,这个在日常生活中就太普遍了。例如我.原创 2021-05-01 16:06:42 · 3355 阅读 · 4 评论 -
秒懂设计模式之责任链模式(Chain Of Responsibility Pattern)
[版权申明] 非商业目的注明出处可自由转载博文地址:出自:shusheng007设计模式汇总篇,一定要收藏:永不磨灭的设计模式(有这一篇真够了,拒绝标题党)概述责任链模式是一个相对比较简单的模式,它的名字已经非常好的暗示了其工作原理。每个处理器互相首尾连接在一起成为一条链,然后任务顺着这条链往下传,直到被某个处理器处理掉。类型行为型(behavioral)难度1颗星定义避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,.原创 2021-04-25 22:54:24 · 1971 阅读 · 0 评论 -
秒懂设计模式之命令模式(Command Pattern)
[版权申明] 非商业目的注明出处可自由转载博文地址:https://blog.csdn.net/ShuSheng0007/article/details/116035276出自:shusheng007设计模式汇总篇,一定要收藏:永不磨灭的设计模式(有这一篇真够了,拒绝标题党)文章目录概述类型难度定义使用场景UML实例第一步:声明一个命令接口 (Command)第二步:构建那些可以具体完成命令的角色(Receiver)第三步:构建各种具体命令(ConcreteCommand)第四步:构建命令的调.原创 2021-04-25 07:39:44 · 2102 阅读 · 6 评论 -
永不磨灭的设计模式(有这一篇真够了,拒绝标题党)
在IT这个行业,技术日新月异。有可能你今年刚弄懂一个编程框架,明年它就不流行了,无怪乎有些无节操的IT从业人员去GitBub上用汉语提Issue:“求你别更新了,实在学不动了”。对于这种行为我只能说,太jb不要脸了…然而即使在易变的IT世界也有很多几乎不变的知识,他们晦涩而重要,默默的将程序员划分....原创 2021-04-21 23:07:24 · 23769 阅读 · 19 评论 -
你会用Kotlin实现构建者模式吗?
前言构建者模式在Java世界中是一个非常实用的创建型设计模式,日常使用非常频繁。有不熟悉的小伙伴请移步到 秒懂设计模式之建造者模式(Builder pattern) 进行回顾。但是当Java的挑战者Kotlin横空出现后,很多人说此设计模式失去了其用武之地,事实真的是这样吗?Kotlin中的构建者模式你内心中是否在期待翻转的剧情呢?现实往往是喜欢打脸的,在大部分情况下,事实真的是这样!由于Kotlin支持默认参数和名称参数,使得在大部分情况下不需要构建者模式就能很好的完成创建功能,干哔哔没用,必须上原创 2020-10-16 09:26:52 · 1321 阅读 · 6 评论 -
秒懂Java代理与动态代理模式
版权申明】非商业目的可自由转载 博文地址: 出自:shusheng007概述什么是代理模式?解决什么问题(即为什么需要)?什么是静态代理?什么是动态代理模式?二者什么关系?具体如何实现?什么原理?如何改进?这即为我们学习一项新知识的正确打开方式,我们接下来会以此展开,让你秒懂。概念什么是代理模式 定义:为其他对象提供一种代理以控制对这个对象的访问...原创 2018-06-30 17:08:23 · 23343 阅读 · 31 评论 -
秒懂设计模式之简单工厂模式(Simple Factory Pattern)
前言人在IT江湖飘,不懂设计模式咋装逼?定义使用场景实现public abstract class Shape { public abstract void draw();}public class Rectangle extends Shape { @Override public void draw() { System.out.prin...原创 2019-01-26 10:22:12 · 1903 阅读 · 0 评论 -
秒懂设计模式之工厂方法模式(Factory Method Pattern)
The essence of the Abstract Factory Pattern is to “Provide an interface for creating families of related or dependent objects without specifying their concrete classes.”.[5]abstract factory原创 2019-01-25 23:32:53 · 4780 阅读 · 8 评论 -
秒懂设计模式之抽象工厂模式(Abstract Factory Pattern)
前言人在IT江湖飘,不懂设计模式咋装逼?三种工厂模式均为创建型模式,即讨论的是如何创建一个类的对象的问题。说到底就是以各种装逼的方式最终将一个类的对象new出来。没有什么神秘的,如果你发现你需要一个类的对象而你又不会这些装逼神器,那你就直接new好啦,爱谁谁。。。不过你也就逃脱不了永远是个小白的命运啦,过几年混不下去了就只能去卖奶茶,什么?你不想那么快就去卖奶茶,那就好好学习这些装逼神器!定...原创 2019-01-25 23:55:38 · 6535 阅读 · 14 评论 -
面向对象设计之魂(六大原则)
前言常言道实践是需要理论来指导的,而理论又是需要实践来检验和修正的,理论和实践就这样相互促进,最后将一个领域推向新的高度。从面向对象编程的出现到现在好像已经有半个世纪了(于1950s第一次出现在MIT),所以这六大原则是在无数先辈的理论与实践中产生的。身为一名主要使用面向对象编程软件从业员(码农),这六大原则是必须要掌握的,它就是设计模式的理论,设计模式是它的实践。六大原则这六大原则应该成...原创 2019-02-24 14:34:02 · 1036 阅读 · 1 评论 -
秒懂设计模式之策略模式(Strategy Pattern)
版权申明】非商业目的可自由转载博文地址:出自:shusheng007设计模式系列文章:秒懂Java代理与动态代理模式秒懂设计模式之建造者模式(Builder Pattern)秒懂设计模式之工厂方法模式(Factory Method Pattern)秒懂设计模式之抽象工厂模式(Abstract Factory Pattern)文章目录前言定义使用场景如何实现业务场景普通实现使用策...原创 2019-03-03 11:58:02 · 3108 阅读 · 3 评论 -
秒懂设计模式之桥接模式(Bridge Pattern)
前言人在IT江湖飘,不懂设计模式咋装X?定义桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interfce)模式。使用场景顾名思义,桥我们大家都熟悉,就是用来将河的两岸联系起来。此处的桥是要将抽象部分与实现部分联系起来。有的同学要抱怨了:尼玛,你本来是为了解释不熟悉的事物,结果又引入两个...原创 2019-03-10 11:12:04 · 4681 阅读 · 10 评论 -
秒懂设计模式之装饰者模式(Decorator Pattern)
前言人在IT江湖飘,不懂设计模式咋装X?今天媳妇突然跑过来问我:你看我好看吗?我抬头一看,这货画了个特殊的眉毛,整个人和平时都不太一样了,化妆大法果然好,不过我突然想到一个相关的设计模式:装饰者模式定义装饰模式是在不必改变原类和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象使用场景需要在运行时动态的给一个对象增加额外的职责时候需...原创 2019-03-26 13:25:52 · 2945 阅读 · 4 评论 -
秒懂设计模式之模板方法模式(Template Method Pattern)
版权申明】非商业目的可自由转载博文地址:出自:shusheng007设计模式系列文章:秒懂Java代理与动态代理模式秒懂设计模式之建造者模式(Builder Pattern)秒懂设计模式之工厂方法模式(Factory Method Pattern)秒懂设计模式之抽象工厂模式(Abstract Factory Pattern)秒懂设计模式之策略模式(Strategy Patter...原创 2019-03-28 22:19:31 · 1692 阅读 · 2 评论 -
秒懂设计模式之建造者模式(Builder pattern)
前言人IT江湖飘,不懂设计模式咋装逼?没实际写过5万行代码谈设计模式都是在瞎扯淡,咱先看看这定义In software engineering, a software design pattern is a general, reusable solution to a commonly occurring problem within a given context in softwar...原创 2019-01-24 15:22:27 · 6176 阅读 · 6 评论