高类聚、低耦合真的就好么?

问题:

有没有人质疑过这个设计思想?

包括前后端分离,本质上不都是一种「分门别类、统筹规划」的管理思想嘛。

最近在看《翻转式学习》,作者在里面吐槽了说真正的教育根本就不应该分学科和科目。(我感觉这个想法太高深了,没敢往下想)

而且最近受All in one影响蛮大的,忽然就想到了在软件开发中的「低耦合、高内聚」的设计思想。

凡事有利必有弊嘛,还请大家可以理性讨论一下啦!

回答:

作者:韦易笑
链接:https://www.zhihu.com/question/347264877/answer/834666851

举个例子就明白了

低内聚,高耦合:

高内聚,低耦合:

你觉得谁更好维护?更容易调整?出错了更容易排查?

所以写程序需要起码的审美,漂亮和丑陋都分不清的话,怎么设计复杂系统呢?

PS:关于你提到的 all in one 的观点和 “高内聚,低耦合”是不是矛盾的问题?

一点不矛盾,all in one 说的就是 “高内聚”的思想,只是它没说完另外一面“低耦合”

再举个例子,原本 PC 插在主板不同位置的各个设备,到了手机时代用 all in one 的方式做成了 soc,降低了成本,提升了性能,但是仔细看它内部:

手机 SoC 内部各个模块之间的协同,何尝不是高内聚低耦合的设计?再把镜头拉远点,站在整块主板的角度,把 SoC 看作一个高内聚的整体的话,这块 all in one 的 SoC 正是通过精密的设计和良好的封装从而对外层(主板上其他设备)提供了低耦合的接口,降低了手机厂商的生产技术门槛:

这就是 “高内聚”和 “低耦合”互相转化的关系,所以这其实是一枚硬币的两面,并且可以一直循环递归下去,视角不同罢了。

对比低内聚高耦合的情况,很多人更容易犯低内聚低耦合的错误,写个 1+1=2 都要先建立个文件弄个 interface ,再建一个文件做实现的类,里面放个runable 的匿名类,外面再套一个静态方法 GetInstance,封装是多了,但空洞无物,内部实现繁琐,外部调用啰嗦(虽然也是低耦合),所以还得加一句,保持简单性和可拆分性。

Image placeholder
IT头条
未设置
  82人点赞

没有讨论,发表一下自己的看法吧

推荐文章
程序员朋友们,请答应我?别再去东南亚写代码了好么?

来源公众号丨半佛仙人(ID:banfoSB)“真的救我一条‘狗命’,可以吗,谢谢您了,我真的撑不住了。”5月3日,在朋友圈看到这条信息,附着一张长图,定位:泰国亚兰,PrincessCrownCasi

可视化编程是否真的没有未来?程序员:它有“七宗罪”

今天想聊聊可视化编程(visual-programming)的未来发展,喂喂,咱们这儿还没开始,各位大佬先别急着走啊您……确实,可视化这个概念跟任何技术并称,都是技术前沿、下一个风口、万亿市场的代名词

你真的了解 React 吗?这里有 50 个 React 面试问题

如果你是一位有理想的前端开发人员,并且正在准备面试,那么这篇文章就是为你准备的。本文收集了React面试中最常见的50大问题,这是一份理想的指南,让你为React相关的面试做好充分的准备工作。首先我

41岁阿里工程师:35岁转管理,真的是必经之路吗?

程序员节,也恰恰是我在阿里工作满3年的时候,借此机会盘点一下自己近3年来的工作,也为自己后续发展把把关。个人的眼界和思考总是有限的,特别是对于研究和技术领域来说,知道得越多,其实就会知道自己有多无知,

程序员囤房养老:这届年轻人,真的很拼

35岁后混的好的码农,都是靠副业发家致富的。近日,杭州一名程序员的购房地图走红网络。在写代码之余,靠着研究这张自制地图捡漏拍卖房,据了解,该程序员目前已经靠拍卖房产赚了上百万。献上膝盖之前,先来看看视

当中小企业决定上云,真的像你们说的那么简单吗?

题图:fromZoommy四季度历来是一年中最忙碌的时期,辛苦了一年,各项工作都在收官,千头万绪、环环相扣,再加上绩效考核的开展,不但烧脑,而且还烧心。同时,最后一个季度又肩负着为来年开局而打基础的艰

程序员的入门门槛真的那么低吗?

最近朋友说起身边的老同学,好多都转型程序员了,连高中考试都要夹带小抄的**同学都去了,哈哈哈,我就实在是好奇了,程序员的入门门槛真的那么低么?很多人工资低干不下去,想转程序员;还有很多没学历的想改变生

富士康14跳被我赶上了,流水线车间真的没有梦想|十年系列

一个不太安分的人。01.写在前面十年前,我还是象牙塔中数学系的一名普通的大三学生。九年前,我是富士康流水线工厂的一名工人。六年前,我包里揣着3000元RMB来北漂。三年前,我在一家互联网金融公司做到了

Node.js 到底是什么?

Node.js是一个JavaScript的运行环境,听起来很棒,然而是什么意思呢?它又是怎么使用的呢? Node运行环境涵盖所有你运行用JavaScript编写的项目所需要的东西。如果你知道Java的

安卓被曝的严重漏洞是什么?

相信涉及用户隐私的网络安全问题,一直都是大家关注的焦点。近来,安卓被爆存在严重漏洞。那么,安卓被曝的严重漏洞到底是什么呢?原来,在安卓系统的相机App中,以色列的一家安全公司发现恶意软件可以通过存储访

10亿美元!苹果收购Intel大部分芯片业务,晚半步布局5G芯片能赶上华为高通么?

大数据文摘出品作者:易琬玉、曹培信2200名英特尔员工,17000项无线技术专利,伴随着苹果在今天凌晨官宣收购英特尔大部分5G基带业务,都将逐渐流向苹果。这也意味着,继高通、华为、三星、联发科、紫光展

大会资料下载|热门技术风口下开发者应该关注些什么?

4月16日,OracleCode2019开发者大会在深圳圆满落幕。今年的大会有将近1000名开发者齐聚现场,45万码农同时在线观看直播。现场,来自国内外的技术专家,围绕云计算、自治数据库、IoT、区块

小米办公Wi-Fi选型最看重什么?

以“体验智能边缘,尽享无限商机”为主题的Aruba中国第一届合作伙伴大会暨InstantOn新品发布会在京举行。会上,Aruba分享了最新的技术和产品信息,以及行业解决方案。小米作为Aruba成功案例

华为“鸿蒙”所涉及的微内核到底是什么?一文带你认识微内核

微内核最近微内核的概念常常被大家提及,同时还有GoogleFuchisa这样的微内核新星,这里让我们一起来认识下微内核吧。背景庞大的UNIX家族计算机技术在二战后快速发展,构成计算机的主要基本单元从电

英特尔第二代至强与傲腾,为企业IT带来了什么?

在企业IT基础设施领域,英特尔第二代至强可扩展处理器与傲腾数据中心级持久内存名声在外,是英特尔以数据为中心的产品组合中的代表之作。于今年4月份发布的第二代英特尔至强可扩展处理器,以强大的平台能力,实现

调查:企业数字化转型中面临的最大挑战是什么?

数字化转型是将新兴的数字技术集成到企业的各个方面的过程。比如最近的云迁移,其中数据和业务流程由第三方提供商管理。因此,数字化转型被视为利用技术简化运营并保持竞争力的一种方式。但Couchbase周三发

5G已经来了,Wi-Fi 6还会远么?

即将于2019下半年发布的WI-Fi6,将使无线网络比以往更快、更可靠、更节能,但这究竟意味着什么呢?Wi-Fi6是Wi-Fi联盟为802.11ax命名的新名字,旨在使Wi-Fi世代更易于普通计算机用

替换Oracle,从阿里巴巴到亚马逊-他们在逃离什么?

AWS终于在2020年前兑现了自己的承诺:彻底替换Oracle数据库。这几乎是每年OracleOpenworld大会上LarryEllision固定的一个梗,他说亚马逊 在号召用户迁移使用AWS的数据

2019 年,容器技术生态会发生些什么?

作者|阿里云智能事业群高级技术专家张磊1Kubernetes项目被采纳度将持续增长作为“云原生”(CloudNative)理念落地的核心,Kubernetes项目已经成为了构建容器化平台体系的默认选择

Salesforce收购Tableau意味着什么?

在客户关系管理软件巨头Salesforce宣布收购商业智能工具Tableau后不久,我认为它又回到了“单一应用”的行业趋势。这种单一应用趋势的含义是什么?不是那些银行仍然热衷的内部大型机,而是云计算中

四面受敌!ARM暂停与华为合作,芯片备胎计划还能执行么?

大数据文摘出品作者:周素云、蒋宝尚一波未平,一波又起,华为四面受敌。继谷歌限制华为的安卓服务后,当地时间5月22日,BBC报道英国芯片设计商ARM刚刚宣布暂停与华为合作!根据BBC获得的内部文件,AR

穿过AI、BI、ML等技术术语迷雾,企业数字化路上需要什么?

未来是智能化时代,AI、大数据、BI等技术的发展将推动企业升级变革。而技术的应用实践需要一个过程,伴随着拥护与质疑、成功与失败。一些失败与反思今年9月份,在莫斯科举办了一场不同以往的大会,与会者专门讨

让20000人心跳加速的表白!华为云究竟说了什么?

当前, 云市场玩家面临业务增长、能力快速迭代、业务转型的压力,华为云全新优化的华为云生态伙伴计划3.0将设置专项激励、创新扶持基金,以及更多的人材养成、严选市场激励,与合作伙伴共享红利、共担风险、共同

死磕Synchronized底层实现,面试你还怕什么?

关于 synchronized 的底层实现,网上有很多文章了。但是很多文章要么作者根本没看代码,仅仅是根据网上其他文章总结、照搬而成,难免有些错误;要么很多点都是一笔带过,对于为什么这样实现没有一个说

5G的到来对于物联网意味着什么?

在当今这个快速发展、超连接和技术支持的时代,我们都见证了多项新技术的发明和颠覆,整个技术支持的生态系统,给整个领域带来了变革。早在2009年,当4G技术出现时,它就为大众带来了一波新的互联网体验,这些