低耦合、高内聚?
极客时间《如何落地业务建模》学习笔记
说点题外话 01|好耦和与坏耦和
必然耦合是无法避免的,具有确定性,是好的耦合;
偶然耦合相对随机、偶然,具有变化性,是不好的耦合,需要处理掉。
从业务上找到业务真正所耦合的能力,消除不必要的偶然耦合,把具体实现转化为对隐藏业务能力的必然耦合。
对于思考题,基础设施层应该算是必然耦合吧,但是其中具体的数据库选型,或者是文件系统,应该属于偶然耦合。
If changing one module in a program requires changing another module, then coupling exists. -- Martin Fowler
Coupling is the measure of how dependent your code modules are on each other. Strong coupling is bad and low coupling is good.
真实世界中,紧耦合的例子是航天飞船;松耦合的例子是乐高积木。
A real-world example of heavy coupling is the space shuttle.
An example of loose coupling is the Lego.
Loose coupling code will be easier to read, reuse and change.
与耦合对应的概念应该是内聚 cohesion,degree to which the elements of a module belong together.
High cohesion is considered a good thing.
关于高内聚,比较好的例子是电钻。
An example of good cohesion is an electric drill.
If your code(classes) can be easily combined together to create something useful, then that code is said to be cohesive.
版权声明: 本文为 InfoQ 作者【escray】的原创文章。
原文链接:【http://xie.infoq.cn/article/84fcb1531b88027c574f28b3f】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论