设计模式
文章平均质量分 74
优雅代码实现,抽象,复用,重构
如来神掌十八式
这个作者很懒,什么都没留下…
展开
-
设计模式 | 适配器模式及典型应用
适配器原创 2022-09-22 21:12:08 · 260 阅读 · 0 评论 -
UML类图几种关系的总结
在UML类图中,常见的有以下几种关系:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1.泛化(Generalization) 【泛化关系】:是一种继承关系,它指定了子类如何特化父类的所有特征和行为例如:老虎是动物的一种. ...原创 2022-04-23 12:43:11 · 2019 阅读 · 0 评论 -
GOF-23种设计模式UML图
创建型(单原建工) 单例模式 原型模式 建造者模式 工厂方法模式 抽象工厂模式 结构型(适外桥享,代组装) 适配器模式 外观模式 桥接器模式 享元模式 代理模式 组合模式 装饰器模式 行为型(在一定状态下,有策略的访问模板,形成备忘录,两器两者,责任命令) 状态模式 策略模式 访问者模式 模板模式 备忘录模式 ...原创 2022-04-23 12:41:14 · 464 阅读 · 0 评论 -
优先使用组合而不使用继承
Java是一个面向对象的语言。封装、继承、多态是面向对象的三个特征。不管是学习还是工作的时候可能在需要复用的情况下,第一个想到的词汇就是:继承。但是其实在设计模式中,发现组合是一种很好复用方式,它适用于大部分我们需要复用的情况,所以优先使用组合而不使用继承。 继承 继承(Inhe...原创 2022-04-23 12:36:52 · 513 阅读 · 0 评论 -
浅谈抽象接口设计理解
1.接口关系2. 代码实例1. 顶层接口(定义两层)--第一层public interface IOpenApiInterface<S extends OpenApiRequest, D extends OpenApiResponse, U extends OpenApiUserVO> { @PostMapping({"/execute"}) RestResponse<D> execute(@RequestBody OpenApiPackage原创 2022-03-29 22:39:52 · 518 阅读 · 0 评论 -
设计模式-装饰者模式
这个模式花费了挺长时间,开始有点难理解,其实就是 定义:动态给一个对象添加一些额外的职责,就象在墙上刷油漆.使用Decorator模式相比用生成子类方式达到功能的扩充显得更为灵活。 设计初衷:通常可以使用继承来实现功能的拓展,如果这些需要拓展的功能的种类很繁多,那么势必生成很多子类,增加系统的复杂性,同时,使用继承实现功能拓展,我们必须可预见这些拓展功能,这些功能是编译时就确定了,是静态的。 &...原创 2022-03-27 23:59:26 · 96 阅读 · 0 评论 -
【转载】策略模式
策略模式的使用场景: 1.针对同一类型问题的多种处理方式,仅仅是具体行为有差别时; 2.需要安全地封装多种同一类型的操作时; 3.出现同一抽象类有多个子类,而又需要使用 if-else 或者 switch-case 来选择具体子类时。 UML类图 这个模式涉及到三个角色:...原创 2022-03-13 22:45:55 · 101 阅读 · 0 评论 -
【转载】观察者模式
1. 买家支付完成后的N个通知 随着电商的大热,网上购物已经深入寻常百姓家了,现在的年轻人,甚至是长辈老人都已经习惯于网购了,随着用户「支付成功」的一声提醒,电商背后就开始忙碌起来了。今天就通过支付的例子来理解「观察者模式」的强大之处。 真正的电商系统不是一篇文章可以说的清楚的,...原创 2022-03-13 22:34:07 · 904 阅读 · 0 评论 -
【转载】组合模式-系统菜单的设计
1. 系统菜单的设计 「系统菜单」应该是所有ERP系统都必备的一个基础模块,反正我是没见过哪个ERP系统是没有菜单设计的。典型的设计就是一个「树状结构」,数据库表用一个parent_id来构建整棵菜单树。 既然「菜单设计」如此重要,那么今天就来讲讲如何利用「组合模式」来优雅的设计系...原创 2022-03-13 21:58:43 · 1402 阅读 · 0 评论 -
【转载】享元模式
1. 内存溢出,谁的锅? OutOfMemoryError这个异常对于Java开发者来说并不陌生,相信有一定经验的同学都遇到过,导致JVM抛出该异常的根本原因是:虚拟机无法开辟出应用程序所需的内存空间,程序已经无法继续运行下去了。 内存溢出一般来说有以下两种可能: 1.内存泄漏 ...原创 2022-03-13 21:35:27 · 149 阅读 · 0 评论 -
设计模式原则
文章目录 单一职责里氏替换原则依赖倒置原则接口隔离原则迪米特法则开闭原则 单一职责 应该有且仅有一个原因引起类的变更。 例如,设计一个视频播放系统,要求:如果是VIP用户就播放完整影片,否则只允许试看5分钟。 class VideoService { pu...原创 2022-03-13 21:31:04 · 95 阅读 · 0 评论 -
【转载】状态模式-状态决定行为
1. 状态决定行为 在线购物现在已经非常普遍了,拿起手机选择商品,输入付款密码,买家就可以坐等收货了,非常方便。 用户的每条购物记录,都对应着一条订单,订单有非常多的状态,不同的状态可以进行不同的操作。例如:刚创建的订单,买家只有两种选择:要么选择付款,要么取消订单,你是不可能确认...原创 2022-03-13 20:42:29 · 126 阅读 · 0 评论 -
【转载】桥接模式-支付功能的扩展
1. 支付功能的扩展 由于支付宝和微信的存在,现在的系统要做「在线支付」已经变得非常简单了,在对应的平台注册企业账号,拿到开发文档,引入SDK包,进行一些简单的接口调用就可以完成对接了。本篇文章就以「支付」为例子,巧用「桥接模式」来进行功能的扩展。 在对接「支付业务」时,公司领导...原创 2022-03-13 20:35:20 · 421 阅读 · 1 评论 -
抽象类实现接口的意义
在Java中,使用抽象类来实现接口,并不是毫无作用。相反,有时间有很大的作用。 当你只想实现接口中的个别方法(不是所有方法)时,你可以先写一个抽象类来实现该接口,并实现除了你想要的方法之外的所有方法(方法体为空)。接着再用你的类继承这个抽象类,这个类中就只用实现你需要的方法了,这样就可以达到你的需要了。但是,如果你直接实现接口的话,你就...原创 2022-03-12 09:23:56 · 202 阅读 · 0 评论 -
【转载】适配器模式
适配器模式的原理与实现 适配器模式(Adapter Design Pattern)。这个模式就是用来做适配的,它将不兼容的接口转换为可兼容的接口,让原本由于接口不兼容而不能一起工作的类可以一起工作。 适配器模式有两种实现方式:类适配器和对象适配器。 类适配器使用继承关系来实现,对象...原创 2022-03-04 21:17:39 · 85 阅读 · 0 评论 -
【转载】外观模式Facade
外观模式是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合度,且客户端调用非常方便。 1. 外观模式概述 不知道大家有没有比较过自己泡茶和去茶馆喝茶的区别,如果是自己泡茶需要自...原创 2022-03-04 21:03:28 · 84 阅读 · 0 评论 -
【转载】设计模式-单例模式的几种实现
单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的一个类只有一个实例,即一个类只有一个对象实例。 – 百度百科 问题的由来 多个线程要操作同一对象,需要保证对象的唯一性。 解决思路 该类的构造方...原创 2022-02-27 21:29:53 · 96 阅读 · 0 评论 -
【转载】设计模式-桥接模式
使用继承的方式,不管新增一个类型还是新增一个品牌,都会牵扯出另外一个维度的变化。 1.1 桥接模式核心要点: 处理多层继承结构,处理多维度变化的场景,将各个维度设计成独立的继承结构,使各个维度可以独立的扩展在抽象层建立关联。...原创 2022-02-27 21:08:42 · 62 阅读 · 0 评论 -
责任链模式- 业务校验工具类
责任链模式原创 2021-04-09 17:12:49 · 550 阅读 · 0 评论 -
设计模式-策略模式
一.策略上下文@Component("classifyStrategyContext")public class ClassifyStrategyContext{ @Autowired private Map<String, AbstractDeviceStrategy> strategyMap; public AbstractDeviceStrategy getClassifyStrategy(String modelLabel) { Str原创 2021-06-02 10:51:24 · 182 阅读 · 0 评论 -
设计模式-- 模板方法模式
模板方法模式也是也是比较容易理解的,就比如说做饭,同样的步骤不同的人做味道是不一样的。或者是造汽车,同样的步骤,造车厂商不一样,造出来的汽车质量不同。这就是模板方法模式。这篇文章将通过案例详细的讲解一下模板方法模式。1、概念它定义一个操作中的算法的框架,而将一些步骤延迟到了子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些步骤。2、例子我们拿做饭的例子来说明。比如就做个...原创 2020-03-15 16:30:38 · 134 阅读 · 0 评论