Cohesion&Coupling

本文探讨了SOA架构中高内聚与低耦合的关系,Jim Webber认为高内聚低耦合是关键,而JJ则强调低耦合的重要性。两者均认为在实际应用中难以同时实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://www.infoq.com/news/2008/04/soa-cohesion

高内聚,低耦合不是什么新鲜东西(曾经某人的签名档)。如果吧低耦合和WebService或者SOA关联起来。那么这篇文章就是高内聚和低耦合的一场争论。

JIm Webber首先说高内聚高耦合是不好的,但低内聚低耦合的系统也同样不好扩展。进而他提出WebService不能太松散,必须要反映一个真实的商业需求才有存在的意义。换句话说更细的划分是没有意义的。(这倒是某人说过的,不能把所有的方法都封装成WebService,要在现实世界中存在的东西才有WebService)

而JJ提出内聚是过去的标准,现在要用全新的眼光来看SOA,就要提倡低耦合。

讨论还在继续。而他们显然都认为内聚和耦合不能并存或者说不能同时发展。似乎这两者必然是此消彼长的。为什么呢?如果确定一个明确的边界,就不能同时着力于两者吗?

也许是不能的。因为边界不明确。即使是文章开始部分Steve提出的三种“好”的内聚,在现实世界中也不是永恒稳定的,变成“坏”的内聚的情况随时可能发生。那么软件重构就不可避免。如何能快速地适应呢?如果一开始就把最有可能变成“坏”的内聚的“好”内聚们低耦合化,或者说WebService化,也就是分开来。是不是会好一点呢?

http://udidahan.weblogs.us/2008/04/23/visual-cobol-enterprise-processes-and-soa/

但还是那句话,边界不是确定的。某人的文章又搞出个Enterprise Process和Business Process的区别。这足以说明,很多东西完全在乎你怎么看。你可能在做低耦合的时候,破坏了一个东西的内聚性;又或者在内聚一些东西的时候,忽视了它们间低耦合的可能性。两者的结果都是代码很难改: 前者的产物是一堆分散的代码,改一个简单的过程要同时变很多地方,虽然有重构工具的帮忙,也很难说不改错一两个。后者的产物是一份自成一体的超级代码,也许没几个人能看懂,更不用说改了,而且多人团队的话还存在一个版本同步的问题。

 

这两种情况可以说都是常见的头疼的状况。有没有银弹呢?我想,只有在开发者事先已经对这种边界有一定的正确预期的情况下,事先的一些假设不能被打破。那么内聚是好的,否则。。。。至于耦合那种不良后果,虽然可以说是没有内聚好的结果。但世事逻辑相类者众,只要有了耦合和重用,那么很可能就有从新组合优化的空间的存在。。。。说来说去,还是没有一个简单的答案。。。。。

 

 

 

 

model new zone import 'GVol.f3grid' zone face skin zone group 'chuqiba' range group 'ZG_001' zone group 'jiyan' range group 'ZG_002' zone group 'ziba' range group 'ZG_003' zone group 'fenxisha' range group 'ZG_004' zone group 'fentu' range group 'ZG_005' zone group 'niantu' range group 'ZG_006' zone group 'fenxisha' range group 'ZG_007' zone group 'ZG_001' remove zone group 'ZG_002' remove zone group 'ZG_003' remove zone group 'ZG_004' remove zone group 'ZG_005' remove zone group 'ZG_006' remove zone group 'ZG_007' remove model configure fluid geometry import 'shui4.dxf' zone water density 1000 zone water set 'shui4' zone gridpoint fix velocity (0,0,0) range position-z -0.1 0.1 zone gridpoint fix velocity-x range position-x 1519.9 1520.1 zone gridpoint fix velocity-x range position-x -0.1 0.1 zone gridpoint fix velocity-y zone cmodel assign elastic zone property bulk 50e6 shear 18e6 density 1500 zone cmodel assign mohr-coulomb range group 'jiyan' zone property density 2500 bulk 2.778e10 shear 2.542e10 zone cmodel assign mohr-coulomb range group 'niantu' zone property density 1910 bulk 8.2353e7 shear 4.8276e7 cohesion 1.6e4 tension 0 friction 9.5 zone cmodel assign mohr-coulomb range group 'chuqiba' zone property density 2060 bulk 3.846e9 shear 2.222e9 cohesion 0 tension 0 friction 37 zone cmodel assign mohr-coulomb range group 'ziba' zone property density 2060 bulk 3.846e9 shear 2.222e9 cohesion 0 tension 0 friction 37 zone cmodel assign mohr-coulomb range group 'fenxisha' zone property density 2030 bulk 5.303e7 shear 2.734e7 cohesion 4e3 tension 0 friction 21 zone cmodel assign mohr-coulomb range group 'fentu' zone property density 2040 bulk 3.4375e7 shear 2.1154e7 cohesion 4e3 tension 0 friction 16.8 zone fluid cmodel assign isotropic zone fluid property permeability 6e-4 poros 0.6 range group 'chuqiba' zone fluid property permeability 1e-14 poros 0.2 range group 'jiyan' zone fluid property permeability 6e-4 poros 0.6 range group 'ziba' zone fluid property permeability 2.05e-10 poros 0.3 range group 'fenxisha' zone fluid property permeability 1.25e-10 poros 0.3 range group 'fentu' zone fluid property permeability 2e-13 poros 0.25 range group 'niantu' zone initialize fluid-density 1000 zone gridpoint initialize fluid-modulus 2e9 zone gridpoint initialize saturation 1.0 range position-y -10 0 zone gridpoint initialize saturation 0.0 range position-y 0 10 zone gridpoint initialize pore-pressure 0.0 gradient (0,0,-10e3) model gravity 0 0 -10.0 zone fluid active on zone mechanical active on model history name 'fluid' fluid time-total model history name 'mech' mechanical ratio model solve fluid time-total 1e6 or mechanical ratio 1e-4 model save 'coupling_result' model restore 'coupling_result' model solve elastic model save 'pre_fos' model restore 'coupling_result' model configure mechanical zone fluid active off zone mechanical active on zone cmodel assign mohr-coulomb model factor-of-safety filename 'safety_factor' associated model save 'safety_factor_result 报错*** Mechanical must be the only active process. Please turn off process fluid. While processing line 83 of file C:/Users/杨彦/Desktop/LG/LG.txt.
03-27
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值