组件化设计:如何构建一套出色的组件系统

写在前面的话

      写了好多年业务,想输出一套前端的UI组件,但是对组件这个概念不是很深入了解,所以参考了很多资料,以及结合自己的理解,做出归纳和总结。所以才有了这一篇,从什么是组件,到什么是软件中的组件化设计,再到组件设计中有什么优势和挑战,到最后如何构建一套出色的组件系统。每个人的想法都不是一样的,所以这一套组件设计思想,可能也并不完善,仅作为大家的参考,也欢迎大家补充。

 

什么是组件?

 

这就是我们现实生活中,最形象最贴切的物品了。

      图一是一堆齿轮驱动的机器,每个齿轮都是单独存在的,如果一个齿轮坏了,我们只要替换下来换一个好的就好了,这个机器一样跑起来啦。

      图二是个人PC的主板,大家也特别熟悉,对于插在主板上的每一个单独功能的组件,如果坏了一个,可以换一个好的,通过插槽替换上去,也可以跑起来了

 

所以生活中有很多组件的实体,我们看看这些关于组件的定义:

1. 供装配整台机器、构件或元件的零件组合

2. 在电子或机械设备中组装在一起形成一个功能单元的一组元件

3. 组装产品(如书橱或碗橱)时所组合的通常或多或少重复的部分

4. 可被组装或被重新组装的几个部件之一

 

这些都是我们看得到,摸得到的,下面我们再跳出现实表象,上升到一个更高的层面去看问题(这样的高逼格的说法叫抽象) 

      图三:是一个完整的中国地图,地图上每个省级的地域,我们不管你在这片区域是平原、高山、还是海岛、还是大海等,只要你属于规划范畴,那么就属于一个省级区域,由这些区域组成了我们一个完整的国家,丢一块都不行。我们可以把每个省级抽象成一个组件,国家机器,就是由这些组件一起跑起来的。

 

我们将信息进行汇总和整理,得出如下结论:

1. 从外观和功能上来讲,他们都是一个独立的部分,可能是零件或者是原件

2. 从行为上来讲,他们拥有组装这个属性,可以和其他组件相互组合

3. 可以被重新组装,重复利用

 

      当然我们做软件设计的,也是通过参考现实,抽象到软件设计中,然后根据落地环境,去实现组件化设计思想,前人已经走在了路上,去摸索这块土地,也获得了一些实用的理论,比如基于组件的软件工程(Component-based software engineering,简称CBSE基于组件的开发(Component-Based Development,简称CBD)的软件开发范型等等,有兴趣的可以自己去看下。

 

 

下面是前人对组件的定义:

1. 一个不透明的功能实体,能够被第三方组装,且符合一个构件模型。 — 卡耐基梅隆大学

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值