23种设计模式,大家没用过,肯定也都听过。作为一名前端开发工程师,我们有没有必要去学习和使用设计模式,我个人认为,是有必要的。 为什么要学习设计模式 我们写代码的时候,实现一个需求,方式有很多种,但是哪种方式的可维护性,…
分类:设计模式
Java描述设计模式(20):命令模式
本文源码:GitHub·点这里 || GitEE·点这里 一、生活场景 1、场景描述 智能电脑的品牌越来越多,由此诞生了一款电脑控制的APP,万能遥控器,用户在使用遥控器的时候,可以切换为自家电视的品牌,然后对电视进行控…
Java描述设计模式(17):调停者模式
本文源码:GitHub·点这里 || GitEE·点这里 一、生活场景 1、场景描述 在公司的日常安排中,通常划分多个部门,每个部门又会分为不同的小组,部门经理的一项核心工作就是协调部门小组之间的工作,例如开发小组,产品…
Java描述设计模式(14):解释器模式
本文源码:GitHub·点这里 || GitEE·点这里 一、解释器模式 1、基础概念 解释器模式是对象的行为模式。给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器。客户端可以使用这个解释器来…
Java描述设计模式(10):组合模式
本文源码:GitHub·点这里 || GitEE·点这里 一、生活场景 1、文件系统 下图是常见的计算机文件系统的一部分。 文件系统是一个树结构,树上长有节点。树的节点有两种: 树枝节点 即文件夹,有内部树结构,在图中涂…
观察者模式,从公众号群发说起
每个人应该都订阅了不少微信公众号,那你有没有注意到微信公众号的消息呢?你订阅的公众号号主每发布一篇文章,你都会主动的接收到文章的推送,并不需要你点开每个订阅的公众号一一查看有没有更新,是不是觉得有点意思?感兴趣?那就接着…
工厂模式,从第三方登录说起
现在的很多平台在登陆的时候,下面都会有一排选项,可以选择微信、QQ、微博账号等登陆,这些账号对平台来说都是第三方账号。第三方账号登陆是最近几年流行起来的,第三方账号登录一般都是基于OAuth2.0协议开发的。如果你不了解…
改造 Android 官方架构组件 ViewModel
前言 Android 官方架构组件在今年 5 月份 Google I/O 大会上被公布, 直到 11 月份一直都是测试版, 由于工作比较繁忙, 期间我只是看过类似的文章, 但没有在实际项目中使用过, 更没有看过源码, 所…
C++ 深入浅出工厂模式(进阶篇)
介绍 前文初始篇C++ 深入浅出工厂模式(初始篇),主要阐述了简单工厂模式、工厂方法模式和抽象工厂模式的结构、特点和缺陷等。以上三种方式,在新增产品时,要么修改工厂类,要么需新增具体的工厂类,说明工厂类的封装性还不够好。…
从ES6重新认识JavaScript设计模式(一): 单例模式
1. 什么是单例模式? 单例模式是一种十分常用但却相对而言比较简单的单例模式。它是指在一个类只能有一个实例,即使多次实例化该类,也只返回第一次实例化后的实例对象。单例模式不仅能减少不必要的内存开销, 并且在减少全局的函数…
Java描述设计模式(04):抽象工厂模式
本文源码:GitHub·点这里 || GitEE·点这里 一、抽象工厂模式 1、生活场景 汽车生产根据用户选择的汽车类型,指定不同的工厂进行生产,选择红旗轿车,就要使用中国工厂,选择奥迪轿车,就要使用德国工厂。 2、抽象…
访问者模式
简介 访问者模式,表示一个对于容器中各对象的操作,它让你可以在不改变容器总对象的情况下定义一个新的操作。 UML类图 示例 学校里有操场,教室,访问者可以为学生和老师,学生在教室学习,老师在教课,学生在操场玩耍,老师在监…
代理模式
简介 代理模式提供了一个代理,达到控制访问对象的目的。代理模式分为远程代理,保护代理,虚拟代理,缓冲代理和智能引用代理等。 UML类图 示例 有句广告词,没有中间商赚差价,这个中间商很多时候就是代理的角色。中间商越多就是…
享元模式
简介 享元模式的英文名是flyweight,在体育运动中指轻量级的,它使用共享支持大量细粒度对象的复用。享元模式避免了大量对象的创建,因此节省了很多内存空间。 UML类图 示例 在linux下,可以创建软链接来实现多个链…
抽象工厂模式
简介 提供了接口来创建相关或者依赖的对象,而不用具体的使用new类名的方式。使用此模式封装了产品的构建,同时类的数量也会变多。 UML类图 示例 曾经,日本制造代表着制造的先进水平(现在很多领域依然如此)。虎牌,象印等品…