设计模式
文章平均质量分 67
漫步者TZ
一个想用技术让生活变得更进步、世界变得更美好的人
展开
-
Springboot 单例模式、原型模式的应用
文章目录单例模式简介实现懒汉式饿汉式原型模式简介实现prototype和new 关键字的区别应用场景在Springboot中使用单例模式原型模式单例模式简介实现懒汉式饿汉式原型模式简介实现prototype和new 关键字的区别By using new keyword you are creating an java object but it is not a spring bean and will not present in spring container. But if y原创 2021-04-15 17:53:32 · 1847 阅读 · 0 评论 -
AOP 自定义注解 策略模式 记录操作日志,避免过多的if else
文章目录参考链接参考链接AOP+自定义注解+策略模式 记录操作日志,避免过多的if else转载 2020-12-27 17:15:43 · 172 阅读 · 0 评论 -
设计模式 基础篇13单例模式
文章目录应用场景优点缺点主要组件结构示意图简要概括样例场景样例代码参考链接应用场景优点缺点 主要组件结构示意图简要概括样例场景样例代码参考链接C语言中文网菜鸟教程...原创 2020-12-15 16:57:01 · 48 阅读 · 0 评论 -
设计模式 基础篇12 状态模式
文章目录应用场景优点缺点主要组件结构示意图简要概括样例场景样例代码参考链接应用场景使用 if-else 或 switch-case 语句来做状态判断,再进行不同情况的处理。但是显然这种做法对复杂的状态判断存在天然弊端,条件判断语句会过于臃肿,可读性差,且不具备扩展性,维护难度也大。且增加新的状态时要添加新的 if-else 语句,这违背了“开闭原则”,不利于程序的扩展。状态模式的解决思想是:当控制一个对象状态转换的条件表达式过于复杂时,把相关“判断逻辑”提取出来,用各个不同的类进行表示,系统处于哪原创 2020-12-15 16:56:35 · 62 阅读 · 0 评论 -
设计模式 基础篇11 外观模式
文章目录应用场景优点缺点主要组件结构示意图简要概括样例场景样例代码参考链接应用场景在现实生活中,常常存在办事较复杂的例子,如办房产证或注册一家公司,有时要同多个部门联系,这时要是有一个综合部门能解决一切手续问题就好了。软件设计也是这样,当一个系统的功能越来越强,子系统会越来越多,客户对系统的访问也变得越来越复杂。这时如果系统内部发生改变,客户端也要跟着改变,这违背了“开闭原则”,也违背了“迪米特法则”,所以有必要为多个子系统提供一个统一的接口,从而降低系统的耦合度,这就是外观模式的目标。优原创 2020-12-15 16:55:45 · 47 阅读 · 0 评论 -
设计模式 基础篇10 组合模式
文章目录应用场景优点缺点主要组件结构示意图简要概括样例场景样例代码参考链接应用场景在现实生活中,存在很多“部分-整体”的关系,例如,大学中的部门与学院、总公司中的部门与分公司、学习用品中的书与书包、生活用品中的衣服与衣柜、以及厨房中的锅碗瓢盆等。在软件开发中也是这样,例如,文件系统中的文件与文件夹、窗体程序中的简单控件与容器控件等。对这些简单对象与复合对象的处理,如果用组合模式来实现会很方便。优点缺点 主要组件结构示意图简要概括样例场景样例代码参考链接C语言中文网原创 2020-12-08 23:25:37 · 96 阅读 · 0 评论 -
设计模式 基础篇09 代理模式
文章目录应用场景优点缺点主要组件结构示意图简要概括样例场景样例代码参考链接应用场景在有些情况下,一个客户不能或者不想直接访问另一个对象,这时需要找一个中介帮忙完成某项任务,这个中介就是代理对象。例如,购买火车票不一定要去火车站买,可以通过 12306 网站或者去火车票代售点买。又如找女朋友、找保姆、找工作等都可以通过找中介完成。在软件设计中,使用代理模式的例子也很多,例如,要访问的远程对象比较大(如视频或大图像等),其下载要花很多时间。还有因为安全原因需要屏蔽客户端直接访问真实对象,如某单位的内部原创 2020-12-08 23:13:36 · 80 阅读 · 0 评论 -
设计模式 基础篇08 模板方法模式
文章目录应用场景优点缺点主要组件结构示意图简要概括样例场景样例代码参考链接应用场景在面向对象程序设计过程中,程序员常常会遇到这种情况:设计一个系统时知道了算法所需的关键步骤,而且确定了这些步骤的执行顺序,但某些步骤的具体实现还未知,或者说某些步骤的实现与具体的环境相关。例如,去银行办理业务一般要经过以下4个流程:取号、排队、办理具体业务、对银行工作人员进行评分等,其中取号、排队和对银行工作人员进行评分的业务对每个客户是一样的,可以在父类中实现,但是办理具体业务却因人而异,它可能是存款、取款或者转账原创 2020-12-08 17:37:27 · 58 阅读 · 0 评论 -
设计模式 基础篇07 责任链模式
文章目录应用场景优点缺点主要组件结构示意图简要概括样例场景样例代码参考链接应用场景在现实生活中,一个事件需要经过多个对象处理是很常见的场景。例如,采购审批流程、请假流程等。公司员工请假,可批假的领导有部门负责人、副总经理、总经理等,但每个领导能批准的天数不同,员工必须根据需要请假的天数去找不同的领导签名,也就是说员工必须记住每个领导的姓名、电话和地址等信息,这无疑增加了难度。在计算机软硬件中也有相关例子,如总线网中数据报传送,每台计算机根据目标地址是否同自己的地址相同来决定是否接收;还有异常处理中原创 2020-12-08 17:30:57 · 83 阅读 · 0 评论 -
设计模式 基础篇06 策略模式
文章目录应用场景优点缺点主要组件结构示意图简要概括样例场景样例代码参考链接应用场景在现实生活中常常遇到实现某种目标存在多种策略可供选择的情况,例如,出行旅游可以乘坐飞机、乘坐火车、骑自行车或自己开私家车等,超市促销可以釆用打折、送商品、送积分等方法。在软件开发中也常常遇到类似的情况,当实现某一个功能存在多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能,如数据排序策略有冒泡排序、选择排序、插入排序、二叉树排序等。如果使用多重条件转移语句实现(即硬编码),不但使条件原创 2020-12-08 17:25:27 · 75 阅读 · 0 评论 -
设计模式 基础篇05 建造者模式
文章目录应用场景优点缺点主要组件结构示意图简要概括样例场景样例代码参考链接应用场景在软件开发过程中有时需要创建一个复杂的对象,这个复杂对象通常由多个子部件按一定的步骤组合而成。例如,计算机是由 CPU、主板、内存、硬盘、显卡、机箱、显示器、键盘、鼠标等部件组装而成的,采购员不可能自己去组装计算机,而是将计算机的配置要求告诉计算机销售公司,计算机销售公司安排技术人员去组装计算机,然后再交给要买计算机的采购员。生活中这样的例子很多,如游戏中的不同角色,其性别、个性、能力、脸型、体型、服装、发型等特性都原创 2020-12-08 16:48:46 · 55 阅读 · 0 评论 -
设计模式 基础篇04 观察者模式
文章目录应用场景优点缺点主要组件结构示意图简要概括样例场景样例代码参考链接应用场景在现实世界中,许多对象并不是独立存在的,其中一个对象的行为发生改变可能会导致一个或者多个其他对象的行为也发生改变。例如,某种商品的物价上涨时会导致部分商家高兴,而消费者伤心;还有,当我们开车到交叉路口时,遇到红灯会停,遇到绿灯会行。这样的例子还有很多,例如,股票价格与股民、微信公众号与微信用户、气象局的天气预报与听众、小偷与警察等。在软件世界也是这样,例如,Excel 中的数据与折线图、饼状图、柱状图之间的关系;MV原创 2020-12-08 16:28:30 · 48 阅读 · 0 评论 -
设计模式 基础篇03 迭代器模式
文章目录原创 2020-12-08 00:42:47 · 64 阅读 · 0 评论 -
设计模式 基础篇02 适配器模式
文章目录应用场景优点缺点主要组件结构示意图应用场景优点复用了现存的类,程序员不需要修改原有代码而重用现有的适配者类将目标类和适配者类解耦,解决了目标类和适配者类接口不一致的问题在很多业务场景中符合开闭原则缺点增加代码阅读难度,降低代码可读性,过多使用适配器会使系统代码变得凌乱主要组件目标(Target)接口:当前系统业务所期待的接口,它可以是抽象类或接口。适配者(Adaptee)类:它是被访问和适配的现存组件库中的组件接口。适配器(Adapter)类:它是一个转换器原创 2020-12-08 00:28:49 · 113 阅读 · 0 评论 -
设计模式 基础篇01 装饰器模式
文章目录主要构成结构示意图简要概括样例设计样例代码主要构成抽象构件(Component)角色:定义一个抽象接口以规范准备接收附加责任的对象具体构件(Concrete Component)角色:实现抽象构件,通过装饰角色为其添加一些职责。抽象装饰(Decorator)角色:实现抽象构件,并包含具体构件的实例,可以通过其子类扩展具体构件的功能。具体装饰(ConcreteDecorator)角色:继承抽象装饰,实现抽象装饰的相关方法,并给具体构件对象添加附加的责任结构示意图简要概原创 2020-12-07 18:15:04 · 104 阅读 · 0 评论 -
设计模式 代理模式
代理模式原创 2020-09-28 16:55:27 · 46 阅读 · 0 评论 -
设计模式 迭代器模式
迭代器模式原创 2020-09-28 16:51:30 · 55 阅读 · 0 评论 -
设计模式 代理模式
代理模式原创 2020-09-28 16:35:15 · 58 阅读 · 0 评论 -
设计模式 观察者模式
观察者模式原创 2020-09-28 16:34:34 · 54 阅读 · 0 评论 -
设计模式 策略模式
策略模式原创 2020-09-27 22:28:07 · 49 阅读 · 0 评论 -
设计模式 责任链模式
责任链模式原创 2020-09-27 18:06:26 · 50 阅读 · 0 评论 -
java 抽象工厂模式解析
1.概念是一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构。抽象工厂模式是工厂方法模式的升级版本,工厂方法模式只生产一个等级的产品,而抽象工厂模式可生产多个等级的产品。使用抽象工厂模式一般要满足以下条件。系统中有多个产品族,每个具体工厂创建同一族但属于不同等级结构的产品。 系统一次只可能消费其中某一族产...转载 2020-04-27 23:29:54 · 522 阅读 · 0 评论 -
java 设计模式7大原则
1.开闭原则软件实体应当对扩展开放,对修改关闭可以通过“抽象约束、封装变化”来实现开闭原则,即通过接口或者抽象类为软件实体定义一个相对稳定的抽象层,而将相同的可变因素封装在相同的具体实现类中。2.里氏替换原则子类可以扩展父类的功能,但不能改变父类原有的功能。也就是说:子类继承父类时,除添加新的方法完成新增功能外,尽量不要重写父类的方法。如果通过重写父类的方法来完成新的功能,...转载 2020-04-28 09:01:47 · 207 阅读 · 0 评论 -
java 原型模式解析
1. 模式的结构原型模式主要包含以下角色:(1)抽象原型类:规定了具体原型对象必须实现的接口。(2)具体原型类:实现抽象原型类的 clone() 方法,它是可被复制的对象。(3)访问类:使用具体原型类中的 clone() 方法来复制新的对象。2. 模式的实现原型模式的克隆分为浅克隆和深克隆,Java 中的 Object 类提供了浅克隆的 clone() 方法,具体原型...转载 2020-04-27 23:03:52 · 122 阅读 · 0 评论 -
java 工厂模式解析
1.概念工厂方法(FactoryMethod)模式的定义:定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。这满足创建型模式中所要求的“创建与使用相分离”的特点。2.优缺点(1)优点用户只需要知道具体工厂的名称就可得到所要的产品,无须知道产品的具体创建过程; 在系统增加新的产品时只需要添加具体产品类和对应的具体工厂类,无须对原工厂进行任何修改,满足开...转载 2020-04-27 23:15:00 · 1126 阅读 · 0 评论 -
java 单例模式解析
1.介绍与样例(1)懒汉模式(2)饿汉模式单例模式的结构与实现2.为何使用private,static,final?单例模式中为什么要使用final和static?2.懒汉模式线程不安全,如何解决?廖雪峰网站-单例模式...原创 2020-04-26 22:26:09 · 113 阅读 · 0 评论