首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
设计模式
JAdam
创建于2023-05-30
订阅专栏
设计模式相关知识
暂无订阅
共25篇文章
创建于2023-05-30
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
简说设计模式
设计模式是一个很重要的内容,接下来将逐步的介绍一下常用的23种设计模式及其它的一些设计模式,每一个设计模式都配有模板代码和简单测试用例方便理解,完整代码会逐步上传到码云中,链接放上:https://gitee.com/adamjiangwh/GoF。 本篇主要介绍一下设计模式的基本原则,并给出目录。
简说设计模式——单例模式
一、什么是单例模式 大家学操作系统的时候应该知道,当多个进程或线程同时操作一个文件时,只有一个能访问;java中类似的例子也有很多,比如多线程中我们最常用的锁,保证了多线程同时对一个方法或对象操作时只有一个能够访问。单例模式就是如此,我们给出它的定义。 单例模式(Singleton),保证一个类仅有
简说设计模式——工厂方法模式
一、什么是工厂方法模式 工厂二字想必大家都不陌生,工厂就是用来建造东西的,我们市面上买的东西比如水杯、玩具、汽车等等都是从工厂生产的,那我们需不需要知道它们是如何生产出来的呢?当然不需要,商家从工厂中直接提货,我们就可以购买了,完全不知道它是如何生产的,这就是工厂方法模式。 工厂方法模式(Facto
简说设计模式——抽象工厂模式
一、什么是抽象工厂模式 抽象工厂模式其实就是多个工厂方法模式,比如前面工厂方法模式中,我们创建多个不同类型的数据库,有MySQL、SQLServer等等,就是用工厂方法模式来实现的,但此时我们只能实现一个表(具体内容见下方工厂模式的实现),我们数据库中当然不可能只有一个表呀,所以抽象工厂模式就来了。
简说设计模式——建造者模式
一、什么是建造者模式 我们先说一个生活中的小例子,当我们在外面饭店吃饭时,比如点个水煮肉片,这家店可能会辣一点、那家店可能会咸一点、对面那家可能放青菜、隔壁那家可能放菠菜,每家店做出来的都不一样,明明都是水煮肉片却有不同的做法,如果都一样就不会说这家难吃那家好吃了。那再看快餐店,比如KFC,我们点个
简说设计模式——原型模式
一、什么是原型模式 还记不记得初高中学生物的时候,细胞分裂时怎么实现的,一个细胞无论是细胞核分裂还是细胞质分裂,是不是都是通过克隆自身实现的。或者说我们去复印资料的时候,是不是直接对原本的资料进行复印,得到了一个一模一样的资料,这些都可以说是原型模式,下面看一下定义。 原型模式(Prototype)
简说设计模式——适配器模式
一、什么是适配器模式 适配器这个词我们应该很熟悉,天天都在使用,手机充电时,电源线头头就叫电源适配器,干什么用的呢?把220V电压转换为手机充电时使用的电压,那适配器模式是不是很好理解了,下面看一下定义。 适配器模式(Adapter),将一个类的接口转换成客户希望的另外一个接口。使原本由于接口不兼容
简说设计模式——桥接模式
一、什么是桥接模式 桥接模式,又叫桥梁模式,顾名思义,就是有座“桥”,那这座桥是什么呢?就是一条聚合线(下方UML图),比如我们下面会举的例子,手机有手机品牌和手机游戏等等,每个手机品牌都有多款游戏,那是不是二者之间就是聚合关系了,这是合成/聚合复用原则的体现,当我们发现类有多层继承时就可以考虑使用
简说设计模式——组合模式
一、什么是组合模式 前面我们讲过Swing(Java进阶篇(六)——Swing程序设计(上)),在Swing中,容器Container和组件如Button、JLabel等等之间的关系就是组合关系,一个容器中有多个组件,组合模式更形象的说就是一棵树,描述的时部分-整体的关系。 组合模式(Composi
简说设计模式——装饰模式
一、什么是装饰模式 还记得我的一个长辈曾经买了一部手机,买的时候还好好的新新的,刚拿到家就坏了,怎么回事呢?其实就是一个假手机,把一个已经报废的旧机子改了改,外面加了个新壳子罢了,这就是一个装饰模式,在原有的基础上加了些东西。 装饰模式(Decorator),动态地给一个对象添加一些额外的职责,就增
简说设计模式——外观模式
一、什么是外观模式 有些人可能炒过股票,但其实大部分人都不太懂,这种没有足够了解证券知识的情况下做股票是很容易亏钱的,刚开始炒股肯定都会想,如果有个懂行的帮帮手就好,其实基金就是个好帮手,支付宝里就有许多的基金,它将投资者分散的资金集中起来,交由专业的经理人进行管理,投资于股票、债券、外汇等领域,而
简说设计模式——享元模式
一、什么是享元模式 说到享元模式,第一个想到的应该就是池技术了,String常量池、数据库连接池、缓冲池等等都是享元模式的应用,所以说享元模式是池技术的重要实现方式。 比如我们每次创建字符串对象时,都需要创建一个新的字符串对象的话,内存开销会很大,所以如果第一次创建了字符串对象“adam“,下次再创
简说设计模式——代理模式
一、什么是代理模式 关于代理模式,我们听到的见到的最多的可能就是静态代理、动态代理之类的,当然还有大家都知道的Spring Aop,这里我们先不谈这些个代理,先说个简单的例子。游戏代练应该都听说过,许多人肯定也找过代练,曾经DNF、LOL、COC等等游戏的代练很多,当然现在各类游戏层出不穷,也都有各
简说设计模式——代理模式(续)
之前说了代理模式,即为其他对象提供一种代理以控制对这个对象的访问,详情见《简说设计模式——代理模式》,而代理模式常见的实现方式为静态代理及动态代理。 一、静态代理 所谓静态代理类是指:由程序员创建或由特定工具自动生成源代码,再对其进行编译。在程序运行之前,代理类的.class文件就已经存在了。UML
简说设计模式——观察者模式
一、什么是观察者模式 观察者一般可以看做是第三者,比如在学校上自习的时候,大家肯定都有过交头接耳、各种玩耍的经历,这时总会有一个“放风”的小伙伴,当老师即将出现时及时“通知”大家老师来了。再比如,拍卖会的时候,大家相互叫价,拍卖师会观察最高标价,然后通知给其它竞价者竞价,这就是一个观察者模式。 对于
简说设计模式——模板方法模式
一、什么是模板方法模式 所谓模板方法模式,其实很简单,可以从模板的角度考虑,就是一个对模板的应用,就好比老师出试卷,每个人的试卷都是一样的,即都是从老师的原版试卷复印来的,这个原版试卷就是一个模板,可每个人写在试卷上的答案都是不一样的,这就是模板方法模式,是不是很好理解。它的主要用途在于将不变的行为
简说设计模式——命令模式
一、什么是命令模式 在说命令模式前我们先来说一个小例子。很多人都有吃夜市的经历,对于那些推小车的摊位,通常只有老板一个人,既负责制作也负责收钱,我要两串烤串多放辣,旁边的人要了三串烤面筋不要辣,过了一会儿又来人要烤蔬菜……,当人多的时候记忆力不好的老板肯定就不知道谁要的啥、交没交钱了;而去有店铺的烤
简说设计模式——状态模式
一、什么是状态模式 状态这个词汇我们并不陌生,在日常生活中,不同时间就有不同的状态,早上起来精神饱满,中文想睡觉,下午又渐渐恢复,晚上可能精神更旺也可能耗费体力只想睡觉,这一天中就对应着不同的状态。或者对软件开发人员更形象的描述可能是UML的状态图(即用于描述一个实体基于事件反应的动态行为,显示了该
简说设计模式——职责链模式
一、什么是职责链模式 从文字角度出发,我们可以先将关注点放在“链”字上,很容易联想到链式结构,举个生活中常见的例子,击鼓传花游戏就是一个很典型的链式结构,所有人形成一条链,相互传递。而从另一个角度说,职责链就是所谓的多级结构,比如去医院开具病假条,普通医生只能开一天的证明,如果需要更多时常,则需将开
简说设计模式——解释器模式
一、什么是解释器模式 解释器这个名词想必大家都不会陌生,比如编译原理中,一个算术表达式通过词法分析器形成词法单元,而后这些词法单元再通过语法分析器构建语法分析树,最终形成一颗抽象的语法分析树。诸如此类的例子也有很多,比如编译器、正则表达式等等。 如果一种特定类型的问题发生的频率足够高,那么可能就值得
下一页