
设计模式
介绍 23 种设计模式。
杏子 |职业生涯规划师
1、职业生涯规划师;
2、1000+小时职业辅导咨询时长(职业转型、简历诊断/优化、1v1职业规划咨询、求职全流程陪跑);
3、8年前端开发经验,前科大讯飞研发负责人;
4、著有书籍《Web全栈项目开发入门与实战》。
展开
-
如何用 CSS 实现三角形
1. 去掉高度,宽度设为 0 ;2. border 宽度为三角高度;3. border 颜色留一边,其他全部透明色。原创 2020-08-26 23:03:26 · 635 阅读 · 1 评论 -
11种行为型设计模式横向对比
行为型设计模式主要作用是将一个复杂的业务流程分解成多个类或对象协作完成。原创 2020-08-26 17:14:18 · 609 阅读 · 0 评论 -
7种结构型设计模式横向对比
结构型设计模式主要作用是将多个类或者对象组合使其功能更加丰富。原创 2020-08-26 17:14:06 · 552 阅读 · 0 评论 -
5种创建型设计模式横向对比
创建型设计模式主要作用是将一个对象的创建者和使用者分离。原创 2020-08-26 17:13:57 · 344 阅读 · 0 评论 -
JavaScript 23 种设计模式之 23 解释器模式
解释器模式指的是给分析对象定义一个语言,并定义该语言的文法表示。再设计一个解释器来解释该语句中的句子。用编译语言的方式来分析应用中的实例。原创 2020-07-31 20:22:28 · 376 阅读 · 0 评论 -
JavaScript 23 种设计模式之 22 备忘录模式
备忘录模式指的是在不破坏对象封装性的前提下,捕捉并保存一个对象的内部状态,以便当需要的时候可以恢复到最初状态。原创 2020-07-31 19:19:46 · 544 阅读 · 0 评论 -
JavaScript 23 种设计模式之 21 访问者模式
访问者模式是将对数据的操作和数据结构进行分离,将对数据中各元素的操作封装成独立的类,使其在不改变数据结构的前提下可以拓展对数据新的操作。原创 2020-07-31 17:27:43 · 488 阅读 · 0 评论 -
JavaScript 23 种设计模式之 20 迭代器模式
迭代器模式是提供一个对象依次访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示,也不关心聚合对象的内部结构。原创 2020-07-30 22:14:55 · 203 阅读 · 0 评论 -
JavaScript 23 种设计模式之 19 中介者模式
中介者模式是提供一个中介者来将对象与对象之间多对多的关系变成一对多的关系,以此来解耦对象之间的依赖。原创 2020-07-29 11:21:44 · 214 阅读 · 0 评论 -
JavaScript 23 种设计模式之 18 观察者模式
观察者模式也叫订阅/发布模式和模型-视图模式,指多个对象之间存在一对多的依赖关系。当一个对象状态发生改变时,所有依赖于它的对象都得到通知自动更新。原创 2020-07-25 22:01:52 · 359 阅读 · 1 评论 -
JavaScript 23 种设计模式之 17 状态模式
状态模式指的是当控制一个对象状态转换的条件表达式过于复杂时,将判断逻辑提取出来,放到一系列的状态类中。原创 2020-07-24 10:41:22 · 232 阅读 · 0 评论 -
JavaScript 23 种设计模式之 16 责任链模式
责任链模式指的是将一系列可以处理请求的对象组成一条链。当请求发生时,将请求沿着这条链传递,直到有对象处理为止。原创 2020-07-20 11:09:33 · 427 阅读 · 0 评论 -
JavaScript 23 种设计模式之 15 命令模式
命令模式指的是执行某些特定事情的指令,或者说实现特定功能的接口约定,其核心思想是将方法的实现者与方法的使用者分离。原创 2020-07-14 22:47:52 · 185 阅读 · 0 评论 -
JavaScript 23 种设计模式之 14 策略模式
策略模式就是一种封装,定义一系列算法,并将每个算法封装起来,使它们可以相互替换。算法的变化不会影响使用算法的客户。原创 2020-06-30 14:12:55 · 250 阅读 · 0 评论 -
JavaScript 23 种设计模式之 13 模板方法模式
模版方法是对封装的一种改造,定义一个抽象类,公共的业务实现放在父类中,需要拓展或者变化的部分放到子类中去完成(即把变化的逻辑增加到子类中,而不改动父类)。最后直接调用模板方法即可。原创 2020-06-30 11:22:14 · 383 阅读 · 0 评论 -
JavaScript 23 种设计模式之 12 组合模式
组合模式又被称为部分 - 整体模式。它是将对象组合成一个树形结构的模式,使用户对单个对象和组合对象具有一致的访问性。原创 2020-06-29 21:03:49 · 335 阅读 · 0 评论 -
JavaScript 23 种设计模式之 11 享元模式
享元模式是一种性能优化方案,其核心是利用共享技术有效支持大量类似的颗粒度对象,从而尽可能减少对象的创建,节省内存空间。原创 2020-06-29 16:58:26 · 325 阅读 · 0 评论 -
JavaScript 23 种设计模式之 10 外观模式
为多个复杂的子系统提供一个统一的接口,使子系统更容易被访问到,降低系统之间的耦合度。原创 2020-06-29 14:48:28 · 352 阅读 · 0 评论 -
JavaScript 23 种设计模式之 9 装饰模式
在不改变对象结构的情况下,给对象增加一些额外的功能。原创 2020-06-28 13:26:06 · 204 阅读 · 0 评论 -
JavaScript 23 种设计模式之 8 桥接模式
使用组合关系代替继承关系,减少子类数量。将抽象和实现分离,降低耦合度。原创 2020-06-23 22:26:15 · 332 阅读 · 0 评论 -
JavaScript 23 种设计模式之 7 适配器模式
调用不同对象的统一接口,如果是外部提供的名称不相同的接口,就需要适配器来转换。比如手机充电器的转换头,既可以充电安卓手机,也可以充电苹果手手机。原创 2020-06-15 22:08:34 · 178 阅读 · 0 评论 -
JavaScript 23 种设计模式之 6 代理模式
由于某些原因,需要给某个对象提供一种代理服务,以控制对该对象的访问。此时代理对象作为目标对象与访问对象之间的媒介。生活中的代理模式随处可见。如 4S 店就是消费者与厂家之间的代理商。租房的承租人一般也会找中介,而不是直接联系房主。原创 2020-05-27 18:11:15 · 230 阅读 · 0 评论 -
JavaScript 23 种设计模式之 5 建造者模式
将一个复杂对象的构造和它的表现分离。使同样的构建过程可以创建不同的表示。将复杂的对象分解成一个个简单的对象,然后一步步构建而成。将变与不变分离,产品的组成部分是不变的,但每一部分是可以灵活选择的。原创 2020-05-20 14:55:48 · 256 阅读 · 0 评论 -
JavaScript 23 种设计模式之 4 抽象工厂模式
提供一组相关或相互依赖对象的接口。抽象工厂模式是工厂方法模式的升级版,工厂方法模式只生产一类产品。而抽象工厂模式可生产多种类型的产品。原创 2020-05-20 11:04:12 · 221 阅读 · 0 评论 -
JavaScript 23 种设计模式之 3 工厂方法模式
定义一个创建产品对象的工厂接口,将产品对象的实际创建工作放到具体子工厂去实现。原创 2020-05-14 22:35:22 · 311 阅读 · 0 评论 -
JavaScript 23 种设计模式之 2 原型模式
用一个已经创建的实例作为原型,通过复制该实例对象来创建许多和原型相同或相似的新对象。原创 2020-05-14 17:08:39 · 251 阅读 · 0 评论 -
JavaScript 23 种设计模式之 1 单例模式
单例模式简单的说就是一个类只能有一个实例。单例又分为懒汉式单例和饿汉式单例。原创 2020-05-11 14:40:02 · 355 阅读 · 0 评论 -
23 种设计模式分类与简述
在程序开发中,设计模式是很容易被开发者所忽视的知识点。初级开发者重点在实战,而且段位不高,有些设计模式的精髓很难理解。但是中级以上开发者,或者对自己代码要求比较高,想要写出更有拓展性,更具维护性的代码。设计模式的学习就不可忽视。它能给予你一些特殊场景的解决方案,并引导你写出更高质量的代码。原创 2019-04-23 14:20:08 · 1061 阅读 · 0 评论 -
MVC 模型、MVP模型 和 MVVM 模型介绍(附案例说明)
为了解决图形界面程序的复杂性,提高可维护性,MVC 模型、MVP模型 及 MVVM 模型应运而生。它们的本质都是将数据层、逻辑层、视图层分层管理。本文将分别介绍这三种模型的概念、特点及通信方式。并通过一个 todoList 案例来说明这三种模型。原创 2020-04-28 23:10:42 · 3311 阅读 · 0 评论 -
彻底搞懂面向对象7大设计原则(附真实场景案例)
设计模式和设计原则是一种思想。其目的是面对经常变更的需求,怎样规整、构建代码,使其更容易拓展和维护。它的重点并不是能够减少多少代码量,反而对于有些场景还有可能增加代码量。当然如果设计合理,业务复杂,大部分情况下是可以减少很多代码量的。所以减少代码并不是重点,重点是如何让你的代码写得更有拓展性和维护性。原创 2020-04-30 17:28:00 · 2549 阅读 · 2 评论