设计模式-设计原则 & 分类

 01 - 开闭原则

程序需要对扩展开放 需要对修改关闭

也就是说 我们程序 需要对具体使用的时候拓展功能的接口 ,但是不能让他修改我们的源码。

类似于jq,vue

02 - 单一职责原则

一个模块只做一件事情,功能越单一越好

03 - 依赖倒置原则

保证使用的上层接口不会被下层接口的变化所影响 

解决: 在中间加一个抽象层

function food1(){}

function food2(){}

function food3(){}

function order(){}

order.prototype.orderFood1 = function (){}
order.prototype.orderFood2 = function (){}
order.prototypt.orderFood3 = function (){}

function resturn(food){
    const list = {
        food1:'香蕉',
        food2:'苹果',
    }
    return list[food]
}

function order = (food){

    return resturn(foods)    
}

上次模块不要依赖于具体的下层模块,而应该抽象

04 - 接口隔离原则

接口应该细化,功能应该单一

不要一个接口调用太多的方法,而是应该尽量细化,是其能力单一

05 - 迪米特法则

两个对象之间 没有必要进行直接沟通  彼此知道和了解

要想让两个对象产生沟通 我们最好让两个对象之间知道的越少越好

中介者模式是一个比较好的体现

06 - 里氏替换原则

当任何父类可以使用的地方 都可以用子类进行替换

当子类在继承父类的时候 必须保证完成继承父类的任何属性和方法

设计模式的分类

01 - 创建型

可以帮助我们进行优雅的创建对象

工厂模式 

可以大量创建对象

单例模式

全局只能有一个

建造者模式

精细化组合对象

原型模式

js的灵魂 创建一个原型 后续创建的对象都依赖于这个原型

02 - 结构型

可以帮助我们优雅的设计代码结构

外观模式

接口细化之后 可以给外界一个套餐 外界不需要关注使用了哪个接口

享元模式

共享来减少数量

适配器模式

用适配代替来更改

桥接模式

独立出来,然后再对接过去

装饰者模式

更优雅的拓展需求

03 - 行为型

模块之间行为的模式总结,帮助我们组织模块行为

观察者模式

我作为第三方进行转发

指责连模式

像生产线一样组织模块

状态模式

用状态代替判断

命令这模式

用命令去解藕

策略模式

算法工厂

迭代器模式

告别for循环

04 - 技巧型

帮助我们优化代码的技巧

链模式

链式调用

惰性模式

机器学习

委托模式

让别人代替你收快递

等待者模式

等你们都回来在吃饭

数据访问模式

一个方便的数据管理器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

貂蝉的腿毛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值