目录
什么是设计模式
针对设计问题的通用解决方案
设计模式的优点
- 有利于代码复用
- 有利于代码稳定可扩展
- 有利于代码的可读性的提升
五大原则
1.开闭原则
对扩展开放,对修改关闭。已有的场景下,对于需要拓展的功能进行开放、拒绝直接的功能修改
2.单一职责原则
岗位职责单一,互不重叠,通过解耦让每一个职责更加独立,一个功能模块只做一件事
3.依赖倒置原则
上层不应依赖下层实现,面向抽象进行coding,而不是对实现进行coding。降低需求与实现的耦合
4.接口隔离原则
多个专业的接口比单个胖接口好用
5.里氏替换原则
子类可以增量扩展,但不能改变父类
模式分类
创建型(创建元素)
功能:规范创建步骤
-
工厂模式
隐藏创建过程、暴露共同接口,批量生产同类型的商品
class GameFactory { create(name) { return new Game(name); } } class Game { constructor(name) { this.name = name; } init() { console.log('init'); } run() { console.log('run'); } } const factory = new GameFactory(); const pubg = new factory.create('pubg'); pubg.init(); pubg.run();
场景:批量生产同类型应用来满足频繁使用同一种类型需求时
实际应用:Button Producer:生产不同类型的按钮 => 生产多个本质相同,利用传参区分不同属性的元素 -
建造者
拆分简单模块、独立执行 => 注重过程与搭配
每个模块独立解耦,而建造者负责创建串联正题系统class Product { constructor(name) { this.name = name; } init() { console.log('Product init'); } } class Skin { constructor(name) { this.name = name; } init() { console.log('Skin init'); } } class Shop { constructor() { this.package = ''; } create(name) { this.package = new PackageBuilder(name); } getGamePackage() { return this.package.getPa