Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于对封装程度的理解 #370

Open
ShileiLiu opened this issue Dec 30, 2019 · 0 comments
Open

关于对封装程度的理解 #370

ShileiLiu opened this issue Dec 30, 2019 · 0 comments

Comments

@ShileiLiu
Copy link

工作中不可避免的会有一些需要封装的地方,然而高度的封装和不进行封装各有什么优劣,是本文的主要内容

首先高度的封装带来的优势是同样的功能下可以更快的实现功能,带来了速度优势,同时各个模块之间的相互支撑可以很好很直观的建立起一个大厦。
劣势是有业务灵活度的牺牲,不能要求根据需求定制业务灵活度是高度封装带来的最大缺陷,每引入一个需求兼容都将带来业务复杂程度的上升,对之后的代码维护绝对是不可见的

不封装或轻微封装带来的是高度的灵活性,灵活意味着可以自定义,可以想做成什么样子就可以做成什么样子,这恐怕是不封装的唯一优势。
劣势相对有很多,首先就是代码缺少复用,多次重复书写降低开发效率,管理一堆毫无结构的代码是每个开发都不想看到的。没有足够的结构支撑也会导致代码维护难度的上升

举个例子,
两者相对就是砖块和沙子之间的区别
砖块可以建起房子,但一堆散沙盖不起高楼,
沙子可以组合成任意的样子,但砖块很难满足奇形怪状的外观。

实际工作中要看业务和需求决定封装的程度,搞建一个金字塔的巨石去建一个房子,然后里面加入了各种兼容和业务来满足石头到处可用的方案不可取,但企图用一堆沙子去建一个胡夫金字塔也不可能。

毕竟金字塔没有底部左数第三块石头变成彩色这样的需求,也没人会真的让你用沙子建金字塔

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant