感觉平时写代码最多也就是封装下功能函数,不知道在什么情况下使用面向对象
前端以后的方向应该会往强类型语言这边靠的。
像现在用ES6来写项目的话,基本都是面向对象的写法了,虽然本质上是语法糖,但对于一个大型项目来说,会比较工程化。
用TS的话,这种感觉应该更强烈一些,Vue等一些框架的核心代码都开始用TS来写了。
感觉用不用面向对象,还是跟整个团队或个人的思想关联比较大,推荐你看一下百度的 kity ,虽然有些年代,但自己封装了一套面向对象的写法,继承、混入的思想很早就体现出来了。
面向对象三个特性:封装/继承/多态。
前端代码逻辑性关联性较后端弱很多,面向对象的感觉也弱很多。
就我的经验,日常业务中,多态基本没见着,继承也很少,封装非常多,经常会看到很多重复代码,还有零零碎碎的代码段,这时候就要考虑合理封装,提高代码复用性以及可维护性。
没有面向对象思维,那写代码就像搬砖,哪里需要搬哪里;有面向对象设计思想,你写代码就像一座大楼的设计师。
前者叫程序员/码农,后者叫软件工程师。
我觉得面向对象是一种思维方式而不是一种技术,你可以是一个流程开发者,也可以是一个能用代码描述故事的人,在于你怎么想,再往深走就是如何把一个很庞大复杂的东西利用面向对象的思维来设计,拆解达到可维护,可读性以及可拓展性,但是平时的每一个小需求都可以是一种设计。面向对象不等于使用new [class]。class只是其中一种方式来表达面向对象而已。
8 回答4.8k 阅读✓ 已解决
6 回答3.5k 阅读✓ 已解决
5 回答2.9k 阅读✓ 已解决
6 回答2.4k 阅读
5 回答6.4k 阅读✓ 已解决
4 回答2.3k 阅读✓ 已解决
4 回答2.8k 阅读✓ 已解决
面向对象:
1.canvas画图,svg画图使用面向对象的写法会比较好;
2.想把handlebars封装为一个组件可以使用面向对象的写法;
3.canvas导出图片比如导出加水印,导出不同的格式如jpeg,png,使用面向对象可以减少冗余的代码;
4.前端文件解压缩,使用面向对象解压缩不同格式,以及是否使用web worker等;
另分享已经在前端应用的设计模式:
观察者模式:
1.websocket订阅与取消订阅主题
2.vue中未保存内容弹框提示,即某个文本输入组件挂载时加入观察者,在该组件销毁或外部组件销毁时,弹出警告对话框,点击确认后可保存文本内容
单例模式:
1.单例dialog弹框
2.单例message组件
策略模式:
1.下订单时使用不同优惠方案,最终价格的计算与显示