![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
浅谈设计模式的应用场景。
码农布丁
这个作者很懒,什么都没留下…
展开
-
基于组合模式的简单示例
基于组合模式的简单示例一、组合的含义这里的组合意思是由什么组成,而且指的都是同一个类型的对象。曾经学过的数据结构中,有一种结构叫链表,其实也是一种组合模式的特例,因为每个结点,最多只有一个后继结点。只要从第一个结点开始,就可以遍历所有的结点。但在日常中,组合模式都可以应用于层次的组织结构当中。例如企业的组织架构、目录树结构。二、结构特点每个对象都可以有一个或多个下级的对象,并且可以往下遍历所有对象。三、设计用一个List集合对象存放下一层级结构的对象,通过AddNode方法将对象添加对集合中,R原创 2022-01-10 19:43:05 · 288 阅读 · 0 评论 -
基于原型模式的简单示例
基于原型模式的简单示例一、原型原型就是一个已有的可以作为参考事物,原型模式是通过复制对象的手段快速得到一个相同的对象。对象复制是原型模式的基本特性。二、对象复制1)浅复制㳀复制相当于给对象换了一个名字,但新名字的对象依旧是原来的对象。只要修改p2的属性,p1的属性也会被修改。Person p1 = new Person();Person p2 = p1;2)深复制深复制就是通过原对象生成一个新的对象,这个这两个是相互独立的对象,修改一方的属性时,并不会影响另一方的属性。public c原创 2022-01-10 18:29:01 · 247 阅读 · 0 评论 -
基于外观模式的简单示例
基于外观模式的简单示例一、外观外观的特点是能看得着的,显示在表面上的,显而易见的。外观模式就是将多个对象中的方法集中一在起,用户通过一个对象就能调用到多个对象中的任意方法。二、情景假设电视遥控器上有很多的功能键,有调节音量大小的、有调节亮度的、有调节对比度的、有切换上一频道和下一频道的。假设这些功能都是由不同的对象来进行控制的,那么就有音量控制对象、亮度控制对象、对比度控制对象、频道控制对象。然而,电视遥控器一个就够了。我们将这些控制都集中在一个遥控器上,只要点一下遥控器上对应功能的按钮就可以了原创 2022-01-10 18:08:08 · 199 阅读 · 0 评论 -
基于中介者模式的通话示例
基于中介者模式的通话示例一、什么是中介者中介者可以理解为两个相互通讯个人之间的通讯介质。例如相亲时的红娘,又例如我们打电话时的手机,通讯软件等。二、示例情景张三在上海,需要和在北京的李四讨论一些事情 ,于是张三拨打李四的手机号码,在电话上进行通话。于是手机就成了两人通话之间的中介。当张三说话时,张三在手机的麦克风说的内容会通过转码,然后传输到李四手机,在扬声器中播放出来。同样,李四说话的内容也是这样传输给张三。首先,两者都使用的手机作为中介,然后他们在说话和听对方说话时,其实在不经意的情况下使用了手原创 2022-01-09 21:10:21 · 178 阅读 · 0 评论 -
基于工厂方法模式的简单示例
基于工厂方法模式的简单示例一、工厂方法简单介绍工厂方法其实是两个词,一个是工厂,一个是方法。在工厂中用方决定要生成的对象。工厂是一个生产加工的地方,工厂方法中提及的工厂是用于生成对象。工厂方法生成的是某一个系列产品的一个实例。具体创建的是某个对象,取决于输入的参数。网上很多示例都是以形状为例。二、工厂的要素对外界来说,工厂方法是一个黑盒,只要传对指定的参数,就能返回一个指定的对象。如何确定要生成的对象,这就需要用到条件判断、条件分支。条件判断、条件分支是工厂方法中的重要要素。通过事先确定的参数值,来原创 2022-01-09 18:33:30 · 501 阅读 · 0 评论 -
基于责任链模式的审批示例
基于责任链模式的审批示例一、责任链模式、单一职责责任、职责就是所负责的工作,单一职责指的就是只负责该部分的工作,不越界不越权。当前环节处理完毕后,根据区间的划分情况,是否需要交到下一职级人员处理,如果不需要下一职级人员处理就完结事项,否则指定下一位执行人员,并由下一位执行人员继续执行。这样形成了一个串行的链条。二、常见示例请假申请、资金申请,这类涉及区间权限的流程,很多情况下都基于责任链模式实现。以请假为例,因为请假涉及到工作的进度,在不同层面上的负责人需要清楚知道人员的请假情况。假设工司的层级原创 2022-01-09 13:01:16 · 709 阅读 · 0 评论 -
基于享元模式的数据库对象管理示例
基于享元模式的数据库对象管理示例一、什么是享元享元可以理解为共享元素,提倡的是一种资源共享的理念,以此来减少资源占用空间的情况。根据对象的共有特性进行区分并存放到容器中,从容器中取出对象访问。主要通过key-value的机制来存取对象,当key不存在时则创建一个对象,并存放入基于key-value机制的容器,然后取出使用;如果key已存在,则直接取出使用。二、基于key-value管理数据库对象此文以数据库对象为例,并非真实情景,仅作示例进行说明。假如,系统中有业务、产品、客户管理,业务库按业务性原创 2022-01-07 22:54:49 · 855 阅读 · 0 评论 -
基于模板方法模式的简单示例
基于模板方法模式的简单示例一、什么是模板方法具有固定的执行步骤,只要按部就班执行就能完成某项事情或做出某个产品。以组装电脑为例,固定的步骤:组装主机 -》 接入键盘 -》 接入鼠标 -》 安装操作系统。每个电脑公司或个人的组装方法都不一样,选择的零件品牌都不一样。例如A公司在组装主机的时候,先将主版固定在机箱,然后安装内存条,接着安装CUP和风扇,之后安装电源、显卡,最后接线,然后接入键盘、鼠标,安装windows操作系统;而B公司在组装主机的时候,先安装CPU和风扇,然后安装内存条,之后将主板原创 2022-01-06 23:07:52 · 815 阅读 · 0 评论 -
基于单例模式的数据库访问对象示例
基于单例模式的数据库访问对象示例一、什么是单例单例,从字面意思的解释是只有一个实例。在创建对象的时候,需要进行实例化。以创建一个Student对象的实例为例:Student s = new Student("张三", 22, 175);二、有什么用处因为某个固定对象需要经常被使用,如果每使用一次都要重新创建一个对象并进行实例化,一方面增加了工作量,同时也增加了系统的开销,以及资源的使用。如果直接就可以拿到一个已经实例化的对象,就可以直接使用,这样就变得方便多了,不再需要再重复的写实例化的代码,原创 2022-01-04 21:27:53 · 587 阅读 · 0 评论 -
基于过滤器模式的数据过滤示例
基于过滤器模式的数据过滤示例一、什么是过滤器过滤器是由一个或多个条件规则组合而成的数据筛选规则。这和T-SQL语句中的 where 条件的作用是一致的,同样具有 and 和 or 的组合,只不过每一个规则都是一个独立的对象。通过过滤器对象与新条件不断进行组合,直到所有条件都已设置完毕。通过这个过滤器对象,实现对数据进行过滤。二、示例介绍本文以 Lambda 表达式实现条件组合,具体请浏览相关lambda表达,及表达式树的相关资料。在组合条件生成过滤器对象过程中,不涉及数据过滤操作,只有当最后通过Qu原创 2022-01-03 19:32:47 · 263 阅读 · 0 评论 -
基于代理模式的接口调用示例
基于代理模式的接口调用示例一、什么是代理以产品销售为例,厂商生产出产品,但产品不对个人直接进行销售,而是供货给经销商,由经销商对个人进行销售。也就是说经销商从厂商取得了商品的代理销售权。每个经销商在销售产品时,价格可能都不一样,甚至个别还存在捆绑销售的情况。这里的经销商就充当了代理的角色。于是就有这样的一种产品销售的关系:厂商 -》 经销商X -》 个人二、接口介绍本文中用到的示例为一个第三方短信业务的API。该接口的API包括:单条发送接口、相同内容群发接口、个性化群发接口、个性化群发接口、模原创 2022-01-03 13:23:02 · 237 阅读 · 0 评论