JavaScript设计模式入坑

JavaScript设计模式入坑

介绍

设计模式编写易于维护的代码。

设计模式的开创者是一位土木工程师。Σ( ° △ °|||)︴,写代码就是盖房子。

模式

模式一种可以复用的解决方案。解决软件设计中遇到的问题。

设计模式的结构

如何编写一个新的设计模式

一个设计模式将会产生如下的内容

模式名称

对模式名称的书写

上下文大纲

适用的上下文

问题陈述

对需要解决的问题进行陈述

解决方案

对问题的解决

设计

模式的设计

实现

如何实现该设计模式

插图

UML图表示

示例

最小模式的形式实现

辅助条件

需要哪些模式支撑该模式,即依赖

关系

像哪些模式,仿照哪些模式设计出的

已知的用法

是否广泛的使用。

在哪里使用。

如何使用

讨论

带来什么好处

编写设计模式

没有和使用该模式的交互和明确的解决方案即不是好的设计模式。

一旦熟悉了模式的相关信息即可以使用现有的格式编写模式。

例如 Christian Heilmann https://christianheilmann.com/ 创建的Revedling Module模式

模式的实用有多少?

需要哪些实践?

设计模式对用户来说为透明的。

需要有说服力

反模式

如果一个设计模式应用于错误的上下文中,为反模式,即一种错误的

例如下方的反模式

  1. 全局上下文中定义变量,没有使用闭包用来包裹变量
  2. 使用定时器来执行代码,会触发eval的问题。
  3. 修改Object类的原型
  4. 以内联的形式使用js
  5. 应该使用document.createElement()创建节点,而不是使用document.write

设计模式的类别

设计模式是基于面向对象的语言。但是核心在于解决实际遇到的问题。

创建型设计模式

处理对象的创建。用来创建对象。

构造器模式,工厂模式,抽象模式,原型模式,单例模式,生成器模式

上方使用过工厂模式

结构型设计模式

找出不同对象之间建立关系的简单方法。

装饰着模式,外观模式,享元模式,适配器模式,代理模式。

行为设计模式

系统中的对象的通信

迭代器模式,中介者模式,观察者模式,访问者模式。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏偏前端工程师的驿站

JS魔法堂:函数节流(throttle)与函数去抖(debounce)

一、前言                                     以下场景往往由于事件频繁被触发,因而频繁执行DOM操作、资源加载等重行为,导致...

1776
来自专栏鸿的学习笔记

协程--以Python和Go为例

一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。

771
来自专栏Golang语言社区

Go 1.9 sync.Map揭秘

目录 [−] 有并发问题的map Go 1.9之前的解决方案 sync.Map Load Store Delete Range sync.Map的性能 其它 在...

4077
来自专栏诸葛青云的专栏

学了指针没学动态内存一切都白搭!C语言基础教程之内存管理

本文将讲解 C 中的动态内存管理。C 语言为内存的分配和管理提供了几个函数。这些函数可以在<stdlib.h>头文件中找到。

610
来自专栏Golang语言社区

【Go 语言社区】各种变量的声明

a:=10; b:="Hello World"; fmt.Printf("%d\n",a); fmt.Printf("%s\n",b); var( c int...

31810
来自专栏码神联盟

珍藏 | Java 岗位 100道 面试题及答案详解

2154
来自专栏程序员宝库

JAVA 中异常处理的最佳实践

前言 异常处理的问题之一是知道何时以及如何去使用它。我会讨论一些异常处理的最佳实践,也会总结最近在异常处理上的一些争论。 作为程序员,我们想要写高质量的能够解决...

2868
来自专栏LanceToBigData

OOAD-设计模式(四)结构型模式之适配器、装饰器、代理模式

前言   前面我们学习了创建型设计模式,其中有5中,个人感觉比较重要的是工厂方法模式、单例模式、原型模式。接下来我将分享的是结构型模式! 一、适配器模式 1.1...

1809
来自专栏Android开发实战

设计模式-责任链模式

职责链模式(Chain of Responsibility):使多个对象都有机会处理同一个请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链...

623
来自专栏编程

PHP7 下的协程实现

前言 相信大家都听说过『协程』这个概念吧。 但是有些同学对这个概念似懂非懂,不知道怎么实现,怎么用,用在哪,甚至有些人认为yield就是协程! 我始终相信,如果...

2168

扫码关注云+社区