设计模式
敲出真谛
这个作者很懒,什么都没留下…
展开
-
【JavaScript版】 数据结构和算法 2 -- 队列和双端队列结构
javascrit语言实现的数据结构和算法,让熟悉前端的小伙伴读起来不再苦涩,从容应对面试。一举拿下offer.原创 2022-11-01 10:08:53 · 277 阅读 · 1 评论 -
【JavaScript版】数据结构和算法 1 -- 栈结构
使用JavaScpirt语言实现的栈结构,前端小伙伴看起来不再吃力,一样清爽。原创 2022-10-30 22:03:31 · 204 阅读 · 0 评论 -
设计模式 2(职责链模式)
JavaScript版实现职责链模式,与静态语言相比,更易于前端同学理解。原创 2022-10-22 18:28:41 · 322 阅读 · 0 评论 -
设计模式笔记 1 (基本介绍)
学好设计模式是走向技术大咖的必经之路原创 2022-09-09 17:00:15 · 216 阅读 · 0 评论 -
例说发布订阅模式
1.发布 - 订阅 - 事件中心class EventEmit { constructor() { // 事件中心 this.eventMap = {} } // 订阅事件 on(type, handler) { if (!(handler instanceof Function)) { // 传入的必须是一个函数 throw new Error('必须是一个函数')原创 2021-09-23 10:25:45 · 130 阅读 · 0 评论 -
leetCode(3,树)
1.实现二叉搜索树class Node { constructor(element, parent) { this.element = element; this.parent = parent; this.left = null; this.right = null; }}// 二叉搜索树class BST { constructor() { this.root = null;原创 2021-09-05 21:40:22 · 87 阅读 · 0 评论 -
leetcode(2,链表)
1.单向链表class Node{ constructor(element,next){ this.element = element this.next = next }}class LinkedList{ constructor(){ this.head = null; this.size = 0; } add(index,element){ if(argumen原创 2021-09-03 23:00:55 · 76 阅读 · 0 评论 -
leetCode (1,计数型题目)
遇到以上字眼,不用多项先弄个map对象再说1./** * 1. 给定一个整数数组,判断是否存在重复元素。 如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。 * 示例 1: 输入: [1,2,3,1] 输出: true 示例 2: 输入: [1,2,3,4] 输出: false */const containsDuplicate = functio原创 2021-08-09 20:22:39 · 135 阅读 · 0 评论 -
例说发布订阅模式和观察者模式的区别(简易版源码实现)
发布订阅模式和观察者模式也是面试当中被经常提及的考察点。读过vue源码的都知道vue的底层视图更新也用到了观察者模式。下面我就直接把源码写出来,注释相当详细,不再赘述。1.发布订阅模式/* 发布订阅模式的简单实现 特点 1.发布和订阅的两个方面彼此之间没有直接联系 2.找打一个第三者作为他们信息传统的桥梁 */const fs = require('fs')const event = { arr: [],// 中间件 // 订阅全部事件原创 2020-08-28 19:59:28 · 256 阅读 · 0 评论 -
策略模式在vue中的使用 -- 一不留神竟然get到了策略设计模式
最近接到客户需求,需要为表单增加验证功能。由于项目使用的技术栈是vue +elementUI,所以加校验规则也容易实现。但是如果每个单文件组件里面都要写一遍校验规则,重复率高,工作量大。于是就思考能不能把校验规则抽取出来,统一维护。看到网上也有相关的做法,于是就大刀阔斧的干起来。1.在utils文件下新建validates.js文件,来实现校验规则(正则表达式)/** * * @param {*} str * 用户名 */export function validateUsername原创 2020-07-07 21:05:25 · 1385 阅读 · 0 评论 -
Java设计模式三 ------ 动态代理模式
上一篇博客大致说了一下静态代理相关的一些知识点和用法。我们不难看出静态代理的优缺点。静态代理的优点:业务类只需要关注业务本身,保证了代码的重用性。 静态代理的缺点:一个真实角色只能对应一个代理角色,要是真实角色多了,代理也随着增多,会导致类的急剧膨胀。好吧,既然你已经发现她的缺点了,你还能包容她吗?因此也就有了这篇博客。先上一个接口public interface Subject { pu...原创 2018-06-01 16:41:56 · 119 阅读 · 1 评论 -
java设计模式二 ---------- 静态代理设计
代理设计也是在Java开发中使用较多的一种设计模式,所谓的代理设计就是值由一个代理对象来操作被代理对象。现实生活中比较常见的例子就是 代理登陆的例子。目标对象/被代理对象 ------ 服务器:网页浏览代理对象 ------- 代理服务器:有上网的方法(调用服务器的上网方法)执行代理对象方法的对象 ---- 想上网的人 流程:我们要上网----->中介(上网的方法)------>服务...原创 2018-06-01 13:52:39 · 162 阅读 · 0 评论 -
Java设计模式一 ------- (装饰者设计模式)
设计模式:专门为解决某一类问题而编写的固定格式的代码。1.装饰者固定结构:接口A ,已知的实现类C,需要装饰的设计类B2.设计步骤: (1.)创建类B,并且实现接口A; (2.) 提供类B的构造方法,参数类型为A,用于接收A接口的其他实现类(C) (3.) 给类型B添加类型A的成员变量,用于存放A接口的其他实现类 (4.)增强需要的方法 (5.)实现不需要增强...原创 2018-05-07 09:58:56 · 144 阅读 · 0 评论