首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Lvshen的技术小屋

    设计模式9之命令模式

    命令模式就是为了解决这个问题而出现的。 什么是命令模式 “命令模式是一个高内聚的模式,其定义为:Encapsulate a request as an object,thereby letting you parameterize clients ” 下面为命令模式的通用类图: 命令模式 命令模式主要由3个要素组成: Receive接收者:接收命令 Command命令角色:封装要执行的命令 Invoker调用者:执行命令 代码实现 首先创建一个抽象接收者 关于命令模式的思考 调用者不直接调用接收者的方法,而是去调用Command的execute()。对于调用者来说,它不需要知道接收者是谁。 一般来说,命令模式结合其他设计模式,会有更好的效果。 但是命令模式中Command也不能无限扩展,如果有N个命令,那就会有N个Command子类,这样也不是很好。

    29710编辑于 2022-05-05
  • 来自专栏大猫的Java笔记

    9.设计模式--策略模式(Strategy模式)

    1.定义 策略模式是一种行为型模型,三国演义中有这样一个桥段,刘备被周瑜设计引到江东,周瑜想让刘备入赘,然后威胁关张赵以及诸葛让出荆州,不料诸葛孔明早有准备,准备了三个锦囊给赵云在需要时候以此打开锦囊 3.策略模式实现 InterfaceStrategy接口定义锦囊的行为,其中operate方法就是每个锦囊都应该具备的方法,即对应的妙计。 策略模式优缺点 优点: 1、策略模式符合开闭原则。 2、避免使用多重条件转移语句,如if...else...语句、switch 语句 3、使用策略模式可以提高算法的保密性和安全性。 参考文献《设计模式之禅》

    39910发布于 2021-11-01
  • 来自专栏技术客栈

    Java设计模式9)享元模式

    前言 在软件开发的世界里,设计模式如同一本精妙的编码诗集,已经成为一种标准的编程实践。在Java编程中,设计模式很重要。 本人将制作一个关于Java设计模式的系列文章,总共23种设计模式将以一篇一篇文章讲解,代码笔记已开源:Gitee点击跳转。在上一篇《Java设计模式(8)外观模式》文章中,我们介绍了外观模式。 本文是这个系列的第九篇章,我们将讲解一下享元模式的实现方式、应用场景以及它的用途。 享元模式 享元模式是一种结构型设计模式,是通过共享对象来减少内存使用和提高性能。 使用场景 当一个应用程序使用大量相似对象时,享元模式可以帮助减少内存消耗。 当对象的大部分状态可以外部化并且可以在多个对象中共享时,可以考虑使用享元模式。 结语 其实享元模式还有很多其他的应用场景,比如: 在文本编辑器中,字符对象可以使用享元模式来共享相同的字符,节省内存空间。

    26510编辑于 2024-04-18
  • 来自专栏∑小熊猫的博客

    Java 设计模式系列(9) —— 代理模式

    代理模式 代理模式的定义: 代理模式为其他对象提供一种代理以控制这个对象的访问、 代理模式的三个主要角色: Subject 抽象主题角色:抽象主题类的主要职责是声明真实主题与代理的共同接口方法,该类可以是接口也可以是抽象类 ProxySubject 代理主题角色: 该角色主要负责引用和控制真实主题,负责在需要的时候创建或删除真实主题对象 RealSubject 真实主题角色: 该类是代理标识的真实对象,是业务逻辑的具体执行者 代理模式的种类 代理模式的简单示例 ? Exception"); return; }else { subject.businessLogic(); } this.followUpDealing(); } } 代理模式的优点 但是由于真实主题和代理主题都实现了抽象主题接口或集成了真实主题与抽象主题的抽象类,因此代理主题可以在不做任何修改的情况下代理各种真实主题的角色 智能化:代理主题可以按照运行时的需求去代理真实主题 代理模式的扩展

    42710发布于 2021-01-07
  • 来自专栏爱敲代码的猫

    java设计模式(9)-桥接模式

    这篇推文分享一下桥接模式,JDBC原理也是运用了桥接模式,先设置驱动名称,链接,来获得数据库链接,降低耦合,减少维护 桥接模式: 把事物和其具体实现分开,使他们可以各自独立的变化。

    48580发布于 2019-10-17
  • 来自专栏Python机器学习算法说书人

    Python设计模式9):桥接模式

    这种情况可以使用桥接模式(Bridge Pattern),其意图是将一个软件的抽象部分与实现部分分离,使它们都可以独立的变化。 桥接模式是指将抽象部分与它的实现部分分离。使它们可以独立地变化。桥接模式的设计类图如图所示。 ? 桥接模式的各组成部分即含义说明如下。 当要避免抽象部分和实现部分的永久绑定,例如实现部分必须在运行时被选择的时候,使用桥接模式。 需要注意的是,抽象部分和实现部分都应该被子类继承。 这样,桥接模式可以使用户结合不同的抽象对象与实现对象,并且独立地扩展抽象部分与实现部分。 桥接模式强调对象有两个以上维度的变化,简化多级继承关系,但同时增加了聚合对象的内部方法,因为它不得不多写方法以便包含它的类调用。

    75930发布于 2019-07-26
  • 来自专栏SaaS加速器

    免费增长业务模式如何成为 SaaS 强大的增长策略

    我们在这里看到的是我们所谓的“免费增长商业模式”的一个小规模版本。 那么,免费增长业务模式如何才能成为 SaaS 强大的增长策略呢?像 Dropbox 和 Evernote 这样的公司是怎么做到的呢? 像Evernote, Dropbox, Pandora, Linkedin, Skype等公司就是许多免费增长模式公司中的成功案例。 事实上,MailChimp 公司报告说,在免费增长模式的一年内,付费用户增长了150% ,利润增长了650% 。 那么,你能做些什么来让你的免费商业模式获得成功呢,就像 Joshua 那样? 首先,不是所有的商业模式都适合所有的企业,选择适合你的模式是至关重要的。免费增长模式也不例外。 ? HitTail 的首席执行官 Rob Walling 将免费增值模式比作日本武士刀——“除非你是使用免费增长模式的大师,否则你可能会砍掉自己的手臂。”

    82710发布于 2021-03-11
  • 来自专栏狮乐园

    高级 Vue 组件模式 (9)

    你可以通过下面的链接来看看这个组件的实现代码以及演示: sandbox: 在线演示 github: part-9 总结 关于函数式组件,我是在 React 中第一次接触,其形式和它的名字一样,就是一个函数 这是不妨换一个角度从渲染机制本身将组件重构为更小的颗粒,并用一个函数式组件动态的代理它们,可能会得到更好的效果,举一个比较常见的例子,比如表单系统中的表单项,一般都具有多种渲染状态,如编辑状态、浏览状态、禁用状态等等,这时利用该模式来抽离不同状态的渲染逻辑就非常不错

    77310发布于 2020-01-21
  • 来自专栏C/C++基础

    设计模式 (9)——外观模式(Facade Pattern,结构型)

    1.概述 使用设计模式可以提高代码的可复用性、可扩充性和可维护性。外观模式(Facade Pattern)属于结构型模式,提供了一个统一的接口(具体类),用来访问子系统的一群接口(具体类)。 要想使用外观模式,我们需要创建一个函数接口简化而统一的类,用来包装子系统中一个或多个复杂的类。外观模式类结构清晰,容易理解,允许我们让客户和子系统之间避免紧耦合。 最少知道原则在中介者模式中也有应用。 2.外观模式的简单应用 本文我们举武侠的例子,我们把《倚天屠龙记》张无忌当作一个系统,他作为一个武侠,本身分为三个子系统,分别是招式、内功和经脉。 缺点: 在不引入抽象外观类的情况下,增加新的子系统可能需要修改外观类或客户端的源代码,违背了“开放关闭原则” 4.小结 (1)外观模式属于结构型模式,提供了一个统一的类接口,用来访问子系统的一群类接口 ---- 参考文献 [1]最少知道原则.百度百科 [2]设计模式读书笔记—–外观模式 [3]设计模式(八)外观模式

    51320发布于 2018-08-03
  • 来自专栏EdisonTalk

    设计模式的征途—9.组合(Composite)模式

    树形结构在软件中随处可见,比如操作系统中的目录结构,公司组织结构等等,如何运用面向对象的方式来处理这种树形结构是组合模式需要解决的问题。 组合模式通过一种巧妙的设计方案来使得用户可以一致性地处理整个树形结构或者树形结构的一部分,也可以一致地处理树形结构中的叶子节点(不包含子节点的节点)和容器节点(包含子节点的节点),本次我们就将学习一下用来处理树形结构的组合模式 二、组合模式简介 2.1 模式概述 组合(Composite)模式:组合多个对象形成树形结构以表示具有“整体-部分”关系的层次结构。 组合模式对单个对象(即叶子对象)和组合对象(即容器对象)的使用具有一致性,组合模式又可以称为“部分-整体”(Part-Whole)模式,它是一种对象结构型模式。   2.2 结构图   在组合模式中引入了抽象构件类Component,它是所有容器类和叶子类的公共父类,客户端针对Component进行编程。组合模式结构如下图所示: ?   

    66640发布于 2018-08-21
  • 来自专栏技术杂货店

    设计模式9】-- 外观模式?没那么高大上

    外观模式是什么 外观模式,其实是用来隐藏系统的复杂性的,屏蔽掉了背后复杂的逻辑,向用户提供简单的可以访问系统的接口,也是属于结构型模式的一种 。 [006APoFYly8gwdwan760qg30b404tan8.gif] 外观模式的角色 外观模式主要包括几个角色: 外观角色:糅合多个子系统功能,对外提供一个共同的接口 子系统的角色:实现系统的部分功能 最后简单小结一下,外观模式,可以成为门面模式,也就是屏蔽掉内部细节,只对外提供接口,实现所需的功能,内部功能可能很复杂,以上我们模拟的只是简单操作。学会了么?

    36840编辑于 2022-01-07
  • 来自专栏SaaS加速器

    如何应用SaaS的免费模式获得增长

    来源/作者:李宽wideplum ---- 今天,给大家编译一篇文章,来介绍一下SaaS免费模式的应用,以此来获得增长。 免费增长模式什么时候才能获得回报? 这样的业务都是默认为免费增长模式而设计的。 SaaS 例子: 大规模开放式在线课程(Massive Open Online Courses, MOOCs) ,Webflow。 企业有意吸收和消化运营、支持和服务的成本,以建立和运行免费增长模式。 你可能会问,为什么会有人这么做呢?有以下一个或多个原因: 当你的免费增长计划成为市场上的一个差异化因素。 要么他们将通过推广这个产品来支付这笔费用 如何判断免费增长模式是否适合你? 归根结底,这一切都取决于你对自己为市场带来的价值的理解程度,以及它与免费增长模式的契合程度。

    2K30发布于 2020-09-15
  • 来自专栏技术杂货店

    设计模式9】-- 外观模式?没那么高大上!

    编程知识库:https://github.com/Damaer/Coding 文档地址:https://damaer.github.io/Coding/#/ 1 开局一张图,剩下全靠写... 1外观模式是什么 外观模式,其实是用来隐藏系统的复杂性的,屏蔽掉了背后复杂的逻辑,向用户提供简单的可以访问系统的接口,也是属于结构型模式的一种 。 外观模式的角色 外观模式主要包括几个角色: 外观角色:糅合多个子系统功能,对外提供一个共同的接口 子系统的角色:实现系统的部分功能 客户角色:通过外观角色访问各个子系统的功能 优点与缺点 优点: 减少系统依赖 最后简单小结一下,外观模式,可以成为门面模式,也就是屏蔽掉内部细节,只对外提供接口,实现所需的功能,内部功能可能很复杂,以上我们模拟的只是简单操作。学会了么?

    20620编辑于 2022-02-15
  • 来自专栏后端架构师

    9.队列-生产消费模式

    [1z4v6nypg0.gif] 点击上方蓝色字体,关注我们 队列:生产消费模式及线程池的运用 ❝关注公众号 MageByte,设置星标获取最新干货。“加群” 进入技术交流群获更多技术成长。 [cyz6nq9xsw.png] 队列与栈 队列也是一种操作受限的线性表数据结构。 顺序队列与链式队列 队列是跟栈一样,是一种抽象的数据结构。「具有先进先出的特性,在队头删除数据,在队尾插入数据。」 [m6wqrheqai.png] 现在我们执行出队操作 [r9kbqw69t6.png] 当我们调用两次出队操作之后,队列中 head 指针指向下标为 2 的位置,tail 指针仍然指向下标为 4 的位置

    97010发布于 2020-05-17
  • 来自专栏学习笔记ol

    小谈设计模式9)—工厂方法模式

    小谈设计模式9)—工厂方法模式 专栏介绍 主要对目前市面上常见的23种设计模式进行逐一分析和总结,希望有兴趣的小伙伴们可以看一下,会持续更新的。 工厂方法模式 工厂方法模式是一种创建型设计模式,它定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法模式将对象的实例化推迟到子类中进行。 分析 通过工厂方法模式,客户端代码只需要与抽象产品和抽象工厂进行交互,而无需关心具体产品的创建过程。 可以通过配置文件等方式动态指定具体工厂类 工厂方法模式可以通过配置文件、反射等方式动态指定具体工厂类,从而实现更加灵活的对象创建方式。 如果系统中只有少量的产品,使用工厂方法模式可能会显得过于复杂,不利于维护和理解。 增加了代码的数量 工厂方法模式需要定义抽象产品、具体产品、抽象工厂、具体工厂等多个类,这增加了代码的数量。

    27320编辑于 2023-10-11
  • 来自专栏用户7873631的专栏

    桥接模式(JavaScript版)9

    //桥接模式 //第一种是先画图片完再画颜色,不分离 //第二种是先两者分离,然后是先各自画颜色和图片再融合起来就行了 /*class colorshape { yellowCircle() {

    37120发布于 2020-10-28
  • 来自专栏csico

    责任链模式(案例解析)(9

    一、概念 1、理解责任链模式 责任链模式是一种对象的行为模式,责任链模式实际上是一种处理请求的模式 它让多个处理器(对象节点)都有机会处理该请求,请求通过这条加工链进行一步步的处理后。 2、JDK中的责任链模式示例 让我们看一下JDK中责任链模式的例子,然后我们将继续实现这种模式的真实例子。我们知道在try-catch块代码中我们可以有多个catch块。 3、责任链模式使用 责任链模式怎么使用呢?

    87220发布于 2021-10-29
  • 来自专栏AlbertYang的编程之路

    设计模式(9)-JavaScript设计模式之如何实现桥接模式???

    1 什么是桥接模式 Bridge模式允许两个组件,即客户端和服务一起工作,每个组件都有自己的接口。Bridge是一种高级架构模式,它的主要目标是通过两级抽象来编写更好的代码。 它有利于对象之间非常松散的耦合,有时也被称为双适配器模式。 桥接模式的作用在于将实现部分和抽象部分分离, 以便两者可以独立的变化。 这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。 Bridge模式是一个很好的驱动开发模式,但在JavaScript中很少见到。 2 参与者 ? 它们两个互相独立,不会影响到对方, 对于两个独立变化的维度,使用桥接模式再适合不过了。 1.桥接模式可以将抽象和其实现分离,方便他们独立变化, 而且实现细节对客户透明。

    1.3K31发布于 2020-09-08
  • 来自专栏数据猿

    想毁灭公司,从增长黑客模式开始!

    投资机构看重增长率和市场份额,创业者追求增长速度,烧10亿买7亿这种操作方式,在当前的互联网产品中不胜枚举,操作增长率和GMV不断获取融资,上市多年还在亏损的公司也不在少数。 快速增长等于公司价值? 头部公司商业模式的纠正,并未影响到市场对增长黑客理论的信任,热衷于此的倡导者依旧奉为圭臬,鼓吹着那些一夜爆红的神话。 即时性数据的另外一面,企业只关注增长率,并不关注盈利和用户质量,利润不是增长黑客的目标,增长率和GMV才是,所以增长黑客可以为了增长率牺牲更大代价,其中也包括产品体验。 廉价和质量是相对的,即时性数据忽略了90%营销,增长黑客启动了本文开始的模式循环,快速增长+融资+上市/被收购。不盈利的上市,投资机构和创始人通常有办法兑现退出,最终买单破产的还是散户。 寒冬带来的正面效应很多,行业整体性反思的价值可能最大,反思后也许会产生蝴蝶效应,未来的互联网新模式,我们共同拭目以待。 END

    66410发布于 2019-06-20
  • 来自专栏CSDN搜“看,未来”

    我用过的设计模式9)-- 备忘录模式

    不过栈嘛,好用是固然的,但它和我们今天要讲的“备忘录模式”并不相冲,反而,还是相辅相成的呢。 这里我们需要学习一下”备忘录模式“的整体思路: [在这里插入图片描述]Originator(发起人):负责创建一个备忘录Memento,用以记录当前时刻它的内部状态,并可以使用备忘录恢复内部状态。

    36830发布于 2021-03-01
领券