课程表

Omi课程

工具箱
速查手册

Omi 理念

当前位置:免费教程 » JS/JS库/框架 » Omi

Omi的理念是基于面向对象编程体系,内建积木系统。 传统的单向数据流或者抛出event的组件通讯方式增加了系统的稳定性,但是丧失了灵活性。一定程度上也降低了组建的复用。所谓鱼和熊掌不可兼得。 面向对象体系需要多一个逻辑层,可以自由操作所有组件的instance,instance之间的逻辑关系构建出了整个程序。这样组建间的逻辑,通信,复用就全部迎刃而解。组建也更加单一职责,更松耦合。

对比函数式编程、命令式编程与面向对象编程,可以归纳总结出下面几条:

  • 命令式编程干脆直接,利用循环条件等控制流程,强调执行过程
  • 命令式编程对硬件执行友好,运行更容易,却阻碍了复杂程序的设计
  • 函数式强调输入和输出,并非执行过程
  • 函数式倡导多个简单执行单元组合成复杂运算程序
  • 面向对象编程将对象作为程序的基本单元,更具有重用性、灵活性和扩展性

Javascript是哪种类型的语言?现在ES6+已经有了class。那么他是面向对象语言? 但是JS可以在任意地方定义函数并且当作把函数当作值来传递。那么他是函数式编程语言? 所以,没有精准的定义,取决于你的用法和姿势。其次,Web组件化架构层面编程模型和语言层面编程模型是非常自由的关系。意思就是,你可以用Javascript构建函数式编程框架如React,也可以基于面向对象体系搭建Omi。

函数式编程 VS 面向对象编程

在UI组件框架层面,函数式编程的代表有React,Omi属于面向对象编程体系。那么他们各有什么优缺点?下面做了个对比(其实也是函数式编程与面向对象编程的对比):

 ReactOmi
组件通信★★★★☆★★★★★
稳定性★★★★★★★★★☆
灵活性★★★★☆★★★★★
扩展性★★★★☆★★★★★
测试性★★★★★★★★★☆
文件大小★★★☆☆★★★★★
功能特性★★★☆☆★★★★☆
DOM性能★★★★★★★★★☆
动画性能★★★★☆★★★★★
抽象复杂度★★★★☆★★★★★
异步编程★★★★★★★★★☆

可以看得出,鱼和熊掌不可兼得。面向对象编程更具有重用性、灵活性和扩展性,带来的问题就是更加难测试。 具体来说,如函数式编程,其测试面积是state1 + state2 + ... + stateN;在面向对象编程中,其测试面积是state1×event1 + state2×event2 + ... + stateN×eventN。

总结来说,更加推荐使用面向对象的方式去搭建UI组件化框架。

转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号