JavaScript 设计模式核核心原理与应⽤实践(一)原则于核心思想
前言
软件工程中,设计模式(Design Pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。
一、设计模式的原则
面向对象编程和面向对象设计的五个基本原则:
- 单一功能原则(Single Responsibility Principle)
- 开放封闭原则(Opened Closed Principle)
- 里式替换原则(Liskov Substitution Principle)
- 接口隔离原则(Interface Segregation Principle)
- 依赖反转原则(Dependency Inversion Principle)
因为JS本身的特点,主要围绕前两个原则展开
二、设计模式的核心思想——封装变化
设计模式的出现,最主要的原因是因为软件在不停的更新迭代中,不断地产生变化
在开发过程中我们不能保证代码不会发生变化,我们能做的就是将影响降到最低,做到:
**将变化的部分与不变的部分抽离,保证变化的部分灵活,不变的部分稳定**
。这称为“封装”
我们不仅要考虑功能的实现,还要考虑其可维护性和可拓展性,不能经得起变化的考研的软件终不能长久。
三、二十三种设计模式
二十三种设计模式可分为三大类分别是:
- 创建型
- 单例模式
- 原型模式
- 构造器模式
- 工厂模式
- 抽象工厂模式
- 结构型
- 桥接模式
- 外观模式
- 组合模式
- 装饰器模式
- 适配器模式
- 代理模式
- 享元模式
- 行为型
- 迭代器模式
- 解释器模式
- 观察和模式
- 中介者模式
- 访问者模式
- 状态模式
- 备忘录模式
- 策略模式
- 模板方法模式
- 职责链模式
- 命令模式
每一种类型的设计模式都离不开
封装变化
只是用了自己的方式去封装不同类型的变化
- 创建型:封装了创建对象过程中的变化
- 结构型:封装了对象之间组合方式的变化,灵活的表达了对象间的配合与依赖关系
- 行为型:封装的是对象的行为进行,让我们更安全、方便的对行为进行更改
看似设计模式与我们很远,其实它就在我们身边,可能我们用到,但不知道这个思想就是,某种设计模式的思想。
总结
以上记录了设计模式的核心思想,以及原则,简单的介绍了三大类设计模式的作用。
JavaScript 设计模式核核心原理与应⽤实践(一)原则于核心思想相关推荐
- JavaScript 设计模式核⼼原理与应⽤实践 之 开篇:前端工程师的成长论
JavaScript 设计模式核⼼原理与应⽤实践 之 开篇:前端工程师的成长论 能够决定一个前端工程师的本质的,不是那些瞬息万变的技术点,而是那些不变的东西. 所谓"不变的东西", ...
- JavaScript 设计模式核⼼原理与应⽤实践之单例模式——Vuex的数据管理哲学
JavaScript 设计模式核⼼原理与应⽤实践之单例模式--Vuex的数据管理哲学 保证一个类仅有一个实例,并提供一个访问它的全局访问点,这样的模式就叫做单例模式. 单例模式的实现思路 思考这样一个 ...
- JavaScript 设计模式核⼼原理与应⽤实践 之 结构型设计模式
JavaScript 设计模式核⼼原理与应⽤实践 之 结构型设计模式 结构型:装饰器模式--对象装上它,就像开了挂 装饰器模式,又名装饰者模式.它的定义是"在不改变原对象的基础上,通过对其进 ...
- JavaScript 设计模式核⼼原理与应⽤实践 之 行为型:策略模式——重构小能手,拆分“胖逻辑”
JavaScript 设计模式核⼼原理与应⽤实践 之 行为型:策略模式--重构小能手,拆分"胖逻辑" 行为型:策略模式--重构小能手,拆分"胖逻辑" 策略模式和 ...
- JavaScript 设计模式核⼼原理与应⽤实践 之 创建型:工厂模式·简单工厂——区分“变与不变”
JavaScript 设计模式核⼼原理与应⽤实践 之 创建型:工厂模式·简单工厂--区分"变与不变" 先来说说构造器 在介绍工厂模式之前,为了辅助大家的理解,我想先在这儿给大家介绍 ...
- JavaScript 设计模式核⼼原理与应⽤实践 之 创建型:工厂模式·抽象工厂——理解“开放封闭”
JavaScript 设计模式核⼼原理与应⽤实践 之 创建型:工厂模式·抽象工厂--理解"开放封闭" 一个不简单的简单工厂引发的命案 在实际的业务中,我们往往面对的复杂度并非数个类 ...
- Redis 深度历险:核心原理与应用实践
Redis 是互联网技术架构在存储系统中使用最为广泛的中间件,它也是中高级后端工程师技术面试中面试官最喜欢问的工程技能之一,特别是那些优秀的.竞争激烈的大型互联网公司(比如 Twitter.新浪微博. ...
- 赠书:Redis 深度历险:核心原理与应用实践
Redis 是互联网技术架构在存储系统中使用得最为广泛的中间件,它也是中高级后端工程师技术面试中面试官最喜欢问的工程技能之一,特别是那些优秀的.竞争激烈的大型互联网公司(比如 Twitter.新浪微博 ...
- clickhouse原理解析与应用实践_编程好书推荐《Redis 深度历险:核心原理与应用实践》...
今天看到一本书,叫<Redis 深度历险:核心原理与应用实践>,作者叫钱文品(老钱),目前在掌阅科技出任资深开发工程师,这本书对redis的剖析还是挺深入的 对redis感兴趣的朋友可以买 ...
- rocketmq存储结构_阿里专家分享内部绝密RocketMQ核心原理与最佳实践笔记
本文源码以RocketMQ 4.2.0 和 RocketMQ 4.3.0 为 基 础 , 从RocketMQ的实际使用到RocketMQ的源码分析,再到RocketMQ企业落地实践方案,逐步讲解.使读 ...
最新文章
- MindSpore网络模型类
- 这12张手绘图,让我彻底搞懂了微服务架构!
- TCP / IP协议 --- 用户层面
- 图片浏览(CATransition)转场动画
- 中国计算机学会CCF推荐国际学术会议和期刊目录-计算机体系结构/并行与分布计算/存储系统
- 1003 Emergency (25 分)【难度: 中等 / 知识点: 变种的Dijkstra】
- Maven精选系列--POM文件解析
- hp打印机怎么连接电脑_打印机怎么连接电脑?安装打印机图文教程
- h5跳转小程序页面url_微信小程序页面跳转方法
- boolean到底占几个字节?
- 项目日报模板_知名房企的精细化施工管理,从项目日常到施工图,全方位涵盖...
- 泛微oa系统服务器怎么填写,泛微协同办公平台Ecology8安装部署手册(105页)-原创力文档...
- PhpSpreadsheet 生成圆饼图
- 电脑扬声器耳机已拔出
- 商品分页查询 ego-prc 实现-easyui
- Maxcomputer使用实例
- 微信小程序中生成二维码工具以及扫一扫
- Redis 缓存清理策略
- JavaScript面试题
- python自动化测试实战-无涯(学习与研究)[一]
热门文章
- 华为RS1 企业的网络架构
- R、Rstudio、Rtools的下载与安装
- C/C++框架、库、资源
- 能力开放平台(个人体验心得)
- call function中的 exporting/importing/changing
- Degree and Closeness Centrality
- 关于微信卡券网页跳转链接能力的下线
- 【论文笔记】Exploring Self-attention for Image Recognition
- Exploring Architectural Ingredients of Adversarially Robust Deep Neural Networks
- 四级英语测试软件,英语四级必备软件推荐