高內(nèi)聚低耦合通俗理解 高內(nèi)聚低耦合是什么意思?
高內(nèi)聚低耦合是什么意思?高內(nèi)聚性是讓一個類或方法專注于一件事。低耦合:這需要較少的對象和類之間的耦合。更流行的是,例如,如果一個類的一個方法引用了許多其他類,而您是新的,那么它就會出現(xiàn)。修改類后,此方
高內(nèi)聚低耦合是什么意思?
高內(nèi)聚性是讓一個類或方法專注于一件事。低耦合:這需要較少的對象和類之間的耦合。更流行的是,例如,如果一個類的一個方法引用了許多其他類,而您是新的,那么它就會出現(xiàn)。修改類后,此方法將出現(xiàn)異常錯誤。
什么是高耦合低內(nèi)聚?
高內(nèi)聚和低耦合是軟件工程中的一個概念。它是判斷一個設(shè)計好壞的標(biāo)準(zhǔn)。它主要是面向?qū)ο蟮脑O(shè)計。它主要取決于類的內(nèi)聚性是否高,耦合性是否低。目的是提高模塊的可重用性和可移植性。一般來說,程序結(jié)構(gòu)中每個模塊的內(nèi)聚度越高,模塊之間的耦合度就越低。銜接是從功能的角度來衡量模塊內(nèi)部的聯(lián)系。一個好的內(nèi)聚模塊應(yīng)該做一件事。它描述了模塊內(nèi)的功能關(guān)系;耦合是軟件結(jié)構(gòu)中模塊間互連的度量。耦合的強(qiáng)度取決于模塊間接口的復(fù)雜性、進(jìn)入或訪問模塊的點以及通過接口的數(shù)據(jù)。擴(kuò)展數(shù)據(jù)示例說明:例如,在訂單模塊中,訂單與庫存密切相關(guān)。如果沒有庫存,就不會有訂單,訂單在很大程度上依賴于庫存。如果直接在訂單模塊中寫入扣除庫存的邏輯,則訂單模塊和庫存模塊將耦合。另一方面,訂單模塊中扣除庫存的邏輯會導(dǎo)致訂單模塊的功能分散,功能不夠集中,從而形成低內(nèi)聚性。訂單中的庫存邏輯被劃分為一個獨立的庫存模塊。庫存模塊公開了扣除庫存的接口,訂單模塊調(diào)用該接口實現(xiàn)減少庫存的操作,減少了訂單邏輯與庫存邏輯的依賴,減少了訂單與庫存之間的耦合。同時,訂單模塊只包含訂單處理邏輯,庫存系統(tǒng)只包含庫存處理邏輯。兩個系統(tǒng)的業(yè)務(wù)更具凝聚力
我是甲方的ERP程序員,公司剛推出ERP系統(tǒng)時,大家都覺得上帝的存在太復(fù)雜了。
上線后,各種問題層出不窮,項目已通過驗收。乙方一聽我們的問題,就會有兩個動作:1)這個問題不在需求范圍內(nèi),需要付費解決;2)這個問題這個版本沒有解決,下一個版本可以解決。
顯然,這是個小問題。為什么不能解決?核心原因:沒有源代碼,不知道從哪里開始。ERP歸根結(jié)底是對數(shù)據(jù)庫的添加、刪除和修改。直到我明白了這兩點,ERP的“九字真言”終于越過了前三個字。(所謂ERP九字咒語是:先剛性,后固化,再優(yōu)化)。
我理解的兩點如下:1)真正理解ERP邏輯的人不是計算機(jī)工作者,而是業(yè)務(wù)骨干。ERP構(gòu)建了最常見、最核心的業(yè)務(wù)邏輯,體現(xiàn)在操作流程和功能接口上。只有業(yè)務(wù)骨干才能真正理解這種設(shè)計的必要性。
2)只要程序員與業(yè)務(wù)主干相結(jié)合,盡管沒有源代碼,但還是有辦法看到添加、刪除、修改和查詢的代碼是如何操作數(shù)據(jù)庫的。這是SQL事件探查器跟蹤程序。
兩者結(jié)合后,ERP維護(hù)將變得非常簡單。畢竟,一個已經(jīng)上市幾十年的ERP產(chǎn)品具有很好的穩(wěn)定性和繼承性。那么,各種個性化報表的開發(fā)就非常簡單了。
隨著對業(yè)務(wù)編程越來越熟悉,這個團(tuán)隊將對ERP產(chǎn)品有非常透徹的了解,終于有一天。乙方要求增加維修費,我們想了想,沒有,我們自己維修吧。然后,我們將ERP的生產(chǎn)功能分離,自行定制開發(fā),并逐步完善,越來越喜歡它。這是九字咒語的最后一個階段:優(yōu)化。
當(dāng)然,這一過程的實現(xiàn)得益于ERP產(chǎn)品開發(fā)平臺的支持和自身的開發(fā)邏輯。大型工廠(包括國外SAP)的ERP從財務(wù)模塊開始,再到供應(yīng)鏈,再到制造,再到商業(yè)智能。這決定了每個模塊是松散耦合的。在演化過程中,采用了多種接口方式,從硬寫數(shù)據(jù)庫到使用XML交換數(shù)據(jù),再到COM組件接口、API,甚至提出了整體開發(fā)平臺,并用開發(fā)平臺重寫業(yè)務(wù)文檔?;旧希@些資料可以在網(wǎng)上找到。如果你參加幾次由大工廠組織的開發(fā)培訓(xùn),就更容易開始。