Shinkai005

V1

2022/04/19阅读:40主题:红绯

秒懂设计模式精读(两小时)

秒懂设计模式精读(两小时)

我要加复习了!!!!,我之前不喜欢复习,都是找同类型文章看..看什么文章没有用,只是找个切入点然后自己思考.转换成自己的知识体系.

image-20220419110147135
image-20220419110147135

很久没有见这种类图了.进入正题

计算机与外设

曾经老式的计算机,是键盘显示器主机一体机,所有配件一体化,耦合度极高,难以拆分。

那么既然他们退出了历史的舞台,那么致命弊端在哪里? 思考一下再往下看

如果显示器坏了,键盘坏了,主板坏了,那么是不是就得整机维修,甚至如果各个部分之间有焊接,那么一个部分损坏需要全部更换,(资本家赚麻了~)

因此后来,设计人员就开始提出了模块化的概念,各种外设开始涌现。

最初接口种类是非常多的,大家知道么~手机当年的接口基本是各个手机都是不同的接口,我给大家找一个万能充电器最初的样子~

image-20220419111231225
image-20220419111231225

十几年前的图...应该不会咎责吧~,为了给大家找图 哭泣

接口泛滥就是一种灾难,因此接口的标准化势在必行~如今有了现在的USB接口,手机也有了通用的tipe-c

下面是各个外设和计算机之间的对话~来再次复习下~面向对象的三大特性

计算机: From now on, 从现在开始,我只接受从USB传输过来的信息,其他方式的我一概不接受

USB接口: 我不关心和我连接的设备是什么, 但是我规定,你必须实现我所定义的 getData()方法,我会调用连接者的这个方法读取数据.

USB键盘: 我实现好了~但我我传过去的是用户输入的字符

USB鼠标: 我也一样,但我穿过去的是鼠标移动或者点击数据

USB摄像头: 我也一样,只是我的数据和视频流相关~

USB接口:我才不管你们是什么类型的数据,都得给我转换成我需要的data类型.

让我们看看里面如何体现了三大特性。

计算机的外设脱离出去,然后给计算机安装一个USB接口,这就是封装.

鼠标键盘,摄像头就是USB接口的实现类,从广义上理解这是一种继承.

因此计算机的USB接口就能接驳各种USB设备,而并非只有最初的那些了,这样就可以进行进一步抽象~也就是多态.

多态化的设计可以使功能更加强大,灵活,可拓展,可替换.这其实就是设计模式中非常重要的一种模式"策略模式"

接口如何定义是解决耦合问题的关键

大家知道有一种东西叫做转换器吧? 把老旧的不支持的接口设备调制适配到新的接口,已达到兼容的目的,这就是"适配器模式"

从一个产品的变化,其实很容易看到设计模式思想的无处不在, 我认为它本身就提炼自生活,学习他们可以打开一种更新的角度来看这个世界.

从单例模式开始我会同时看两本书的内容写笔记. 秒懂设计模式用的是java的思想,我在找一本js的设计模式来写.

在公众号首页输入 js设计模式 领取

今天就写到单例的开始~之后再更.我需要准备准备~

分类:

前端

标签:

Node.js

作者介绍

Shinkai005
V1

公众号:深海笔记Shinkai