高内聚低耦合软件设计基本原则

白炭黑2023-05-08  28

高内聚低耦合是软件设计的一个基本原则,说的是在程序的各各模块中,尽量让每个模块独立,相关的处理尽量在单个模块中完成,就是俗话说的:该干嘛干吗去! 优点:能提降低各模块的之间的联系,减少“牵一发而动全身”的几率,提高开发效率,降低升级维护成本,也便于进行 单元测试 ,提高软件质量。

武志红心理课结束后,周三在得到做了一次直播,主讲了讨好型人格,展开攻击性,活出真正的自我,如何在关系中握主动权,怎样成为能够自主选择的人等等内容,而最核心的就是内聚性自我。

内聚性自我是美国心理学家科胡特提出的概念,也有人翻译为“核心自我”。所谓内聚性,意思就是你的自我有一种向心力,可以保证心灵的各个组成部分向内聚合,而构成一个整体。关于内聚性自我,科胡特有这样的描绘:在情绪的惊涛骇浪中,有一个内聚性自我稳稳地在那里。

每个人成长过程,内聚性自我的形成是最重要的节点。形成内聚性自我必须建立在”我是好的“这种感觉上,这种自恋感,是一种内聚力,是内聚性自我的核心感觉。如果把内聚力形容成一个壳的话,这个内聚性自我就是一个内核,这个内核可以支持你充分展开生命力,真实的做自己。 当你有了非常真实的内聚性自我的时候,就会变得既稳定又灵活。内聚性自我强的人能够聆听你的信息,接受住你传递的坏,并且能够把这个坏兜住。再还给你一个好东西,这是一个人成熟人格的标志。

只有一种东西可以形成内聚性自我,那就是真实。必须真实的活着,真实的展开自己的生命力。

蒋方舟在《奇葩大会》上说到:愧疚是最大的负能量,任性是最被低估的美德”。任性是展开自己生命力的真实体验,不去做讨好型的人,不去做头脑层面外界认可的人。有点任性的活着,按照自己的感觉来呈现真实的自己。只有真实的展开带有攻击性的生命力,才会获得一种感觉,说这是可以的,这是好的。这样才能把真实的好东西内化到心里,才能形成坚定地内核。

想象自己是个能量体,这个能量体就像章鱼的模型,作为一个能量体不断地对这个世界发出你的攻击性,发出你的能量触角。什么是攻击性呢我想获得爱,我想穿的暖,我想展现我的自恋。。。这都叫伸出你的能量触角。伸出触角后有两种可能,一是被接受,能量触角被照亮,一是被拒绝,能量触角变黑。变黑了怎么办?藏起来吗?当然不是!是在适当的时候展现出来,当你真实的呈现黑色生命里的时候,才有可能被救赎,只有呈现出来才有可能被照亮,才有可能将死能量转变成生能量。自我才会更完整。

在教育自己的孩子时,做个有稳定容器功能的父母,这才是给孩子最好的爱吧。所谓容器功能,我想应该是孩子表现好认可他,孩子遇到挫折支持他,孩子失败时接纳他。抱持住他一切,当他展开攻击性的时候,接住他的能量触角,给出积极的回应,让孩子活的大胆一些,任性一些,放肆一些,让他始终在:“我是好的”这种自我认定中成长,当然孩子这也是要在适当的,合理的范围内表达攻击性,不要去构建伤害型关系。

高内聚性自我的人,会体验到一种自我确信的高价值感和实实在在的存在感,生命也因此而多彩。 把自恋,性,攻击性这些生命的动力自由向外延伸,再内化成一个稳定的自我,纵使生命旅程千辛万苦但依然可以百折不饶! 

拥有一个稳定的自我,纵使生命旅程千辛万苦但依然可以百折不饶!

百科粘过来的,你看看:

基本解释

高内聚低耦合,是软件工程中的概念,是判断设计好坏的标准,主要是面向对象的设计,主要是看类的内聚性是否高,耦合度是否低。

高内聚

内聚就是一个模块内各个元素彼此结合的紧密程度,高内聚就是一个模块内各个元素彼此结合的紧密程度高。 所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。

低耦合

耦合:一个软件结构内不同模块之间互连程度的度量(耦合性也叫块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差,模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息。) 对于低耦合,粗浅的理解是: 一个完整的系统,模块与模块之间,尽可能的使其独立存在。 也就是说,让每个模块,尽可能的独立完成某个特定的子功能。 模块与模块之间的接口,尽量的少而简单。 如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。 这样有利于修改和组合。[1]

编辑本段为什么要追求高内聚和低耦合

软件架构设计的目的简单说就是在保持软件内在联系的前提下,分解软件系统,降低软件系统开发的复杂性,而分解软件系统的基本方法无外乎分层和分割。但是在保持软件内在联系的前提下,如何分层分割系统,分层分割到什么样的粒度,并不是一件容易的事,这方面有各种各样的分解方法,比如:关注点分离,面向方面,面向对象,面向接口,面向服务,依赖注入,以及各种各样的设计原则等,而所有这些方法都基于高内聚,低耦合的原则。 高内聚和低耦合是相互矛盾的,分解粒度越粗的系统耦合性越低,分解粒度越细的系统内聚性越高,过度低耦合的软件系统,软件模块内部不可能高内聚,而过度高内聚的软件模块之间必然是高度依赖的,因此如何兼顾高内聚和低耦合是软件架构师功力的体现。 高内聚,低耦合的系统有什么好处呢?事实上,短期来看,并没有很明显的好处,甚至短期内会影响系统的开发进度,因为高内聚,低耦合的系统对开发设计人员提出了更高的要求。高内聚,低耦合的好处体现在系统持续发展的过程中,高内聚,低耦合的系统具有更好的重用性,维护性,扩展性,可以更高效的完成系统的维护开发,持续的支持业务的发展,而不会成为业务发展的障碍。[2]

以上就是关于高内聚低耦合软件设计基本原则全部的内容,包括:高内聚低耦合软件设计基本原则、内聚性自我、结构化设计方法强调高内聚低耦合,OO强调类的责任单一,这些设计原则共同追求的NFR 是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

转载请注明原文地址:https://juke.outofmemory.cn/read/3848101.html

最新回复(0)