书架

书架

=一个知识书库=

23种设计模式

23种设计模式

一直想写一篇介绍设计模式的文章,让读者可以很快看完,而且一看就懂,看懂就会用,同时不会将各个模式搞混。自认为本文还是写得不错的,花了不少心思来写这文章和做图,力求让读者真的能看着简单同时有所收获。 设计模式是对大家实际工作中写的各种代码进行高层次抽象的总结,其中最出名的当属 *Gang of Four* (*GoF*) 的分类了,他们将设计模式分类为 23 种经典的模式,根据用途我们又可以分为三大类,分别为创建型模式、结构型模式和行为型模式。 有一些重要的设计原则在开篇和大家分享下,这些原则将贯通全文: 1. 面向接口编程,而不是面向实现。这个很重要,也是优雅的、可扩展的代码
more...
设计模式-七大原则

设计模式-七大原则

# 开闭原则COP * 开闭原则(Open Closed Principle)是编程中最基础、最重要的设计原则。 * 模块和函数应该对扩展开放(对提供方),对修改关闭(对使用方)。用抽象构建框架,用实现扩展细节。 * 当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。 * 编程中遵循其他原则,以及使用设计模式的目的就是遵循开闭原则。 <!--more--> # 里氏替换原则LSP 子类继承不影响父类原有的实现。(尽量少重写父类已经实现了的方法,除非迫不得已且对父类有一定的认识) # 依赖倒置原则DIP Dependence i
more...
js实现23种设计模式

js实现23种设计模式

> js方式实现23中设计模式 <!--more--> # 创建型模式 ## 单例模式 三要素: - 同一个实例 - 类自行创建实例对象 - 可向整个系统输出这个实例 分类: - 饿汉式( 类加载到实例时创建实例对象) - 懒汉式( 第一次使用时才创建实例对象) 代码示例:懒汉式 ```javascript // 手机 用来打电话,玩游戏,看电影,且都是同一个手机 // 懒汉式 var Phone = (function () { // 规定只能使用 Phone.getInstance 获取实例 var
more...
ESLint解析-简单解析

ESLint解析-简单解析

> 两个月之前在项目中就开始使用 Eslint ,当时直接 copy 别人的 .eslintrc.js 文件,感觉好复杂,一直没吃透,中间去把 Eslint 官方文档看了数遍,依然无果。今天刚好没事,回过头来想整理一下 Eslint 的使用,突然发现变得好简单。总结下在这过程中走得弯路。 * 先要知道 Lint 是什么,Eslint 又是什么; * 因为想要的太多(想把 Eslint 官方文档里每个字都记住)就容易抓不住重点(目的是在项目中使用 Eslint,这仅仅是个工具,工具又怎么会搞的太难)。 <!--more--> # 目标 学习完本教程希望对下面这个 .eslintrc.j
more...
整理 node-sass 安装失败的原因及解决办法

整理 node-sass 安装失败的原因及解决办法

> *npm install 时偶尔遇到报错:没有安装python或node-sass 安装失败的问题,百度之后发现是被墙了,但根据百度的方法换了淘宝镜像和用了vpn都安装失败,最后发现原来是因为没有卸载之前安装失败的包导致的。作者本人最后的解决方案是npm uninstall node-sass,然后使用VPN重新安装了一遍就成功了。不能翻墙的同学请看下文* <!--more--> # 前言 很多小伙伴在安装 `node-sass` 的时候都失败了,主要的原因是 `node` 版本和项目依赖的 `node-sass` 版本不匹配。 # 解决方案 解决方案:把项目
more...