Shinkai005
2022/04/19阅读:40主题:红绯
秒懂设计模式精读(两小时)
秒懂设计模式精读(两小时)
“我要加复习了!!!!,我之前不喜欢复习,都是找同类型文章看..看什么文章没有用,只是找个切入点然后自己思考.转换成自己的知识体系.
”
很久没有见这种类图了.进入正题
计算机与外设
曾经老式的计算机,是键盘显示器主机一体机,所有配件一体化,耦合度极高,难以拆分。
那么既然他们退出了历史的舞台,那么致命弊端在哪里? 思考一下再往下看
如果显示器坏了,键盘坏了,主板坏了,那么是不是就得整机维修,甚至如果各个部分之间有焊接,那么一个部分损坏需要全部更换,(资本家赚麻了~)
因此后来,设计人员就开始提出了模块化的概念,各种外设开始涌现。
最初接口种类是非常多的,大家知道么~手机当年的接口基本是各个手机都是不同的接口,我给大家找一个万能充电器最初的样子~
“十几年前的图...应该不会咎责吧~,为了给大家找图 哭泣
”
接口泛滥就是一种灾难,因此接口的标准化势在必行~如今有了现在的USB接口,手机也有了通用的tipe-c
下面是各个外设和计算机之间的对话~来再次复习下~面向对象的三大特性
计算机: From now on, 从现在开始,我只接受从USB传输过来的信息,其他方式的我一概不接受
USB接口: 我不关心和我连接的设备是什么, 但是我规定,你必须实现我所定义的 getData()方法,我会调用连接者的这个方法读取数据.
USB键盘: 我实现好了~但我我传过去的是用户输入的字符
USB鼠标: 我也一样,但我穿过去的是鼠标移动或者点击数据
USB摄像头: 我也一样,只是我的数据和视频流相关~
USB接口:我才不管你们是什么类型的数据,都得给我转换成我需要的data类型.
让我们看看里面如何体现了三大特性。
计算机的外设脱离出去,然后给计算机安装一个USB接口,这就是封装.
鼠标键盘,摄像头就是USB接口的实现类,从广义上理解这是一种继承.
因此计算机的USB接口就能接驳各种USB设备,而并非只有最初的那些了,这样就可以进行进一步抽象~也就是多态.
多态化的设计可以使功能更加强大,灵活,可拓展,可替换.这其实就是设计模式中非常重要的一种模式"策略模式"
接口如何定义是解决耦合问题的关键
大家知道有一种东西叫做转换器吧? 把老旧的不支持的接口设备调制适配到新的接口,已达到兼容的目的,这就是"适配器模式"
“从一个产品的变化,其实很容易看到设计模式思想的无处不在, 我认为它本身就提炼自生活,学习他们可以打开一种更新的角度来看这个世界.
”
“从单例模式开始我会同时看两本书的内容写笔记. 秒懂设计模式用的是java的思想,我在找一本js的设计模式来写.
”
“在公众号首页输入 js设计模式 领取
”
今天就写到单例的开始~之后再更.我需要准备准备~
作者介绍
Shinkai005
公众号:深海笔记Shinkai