2014-12-07 42 views
1

我遇到了this site這句話在Eclipse代碼度量的討論,特別是討論的「缺乏凝聚力」的理念:「抽象」在「班級凝聚力」或「班級凝聚力」代碼指標中意味着什麼?

凝聚力是面向對象編程的一個重要概念。它表明一個類是代表單個抽象還是多個抽象。這個想法是,如果一個類表示多個抽象,那麼它應該被重構爲多個類,每個類表示一個抽象。

在這種情況下什麼是「單一抽象」?

Difference between Encapsulation and Abstraction,我得到的抽象通常只是向用戶展示必要的細節(通過使用接口和抽象類)。 而這裏:What is abstraction?,我再次說明抽象是隱藏實現。

你會如何應用這些想法在那篇文章中所使用的單一抽象項?

+0

我只是通過單個抽象問什麼作者的意思 – committedandroider 2014-12-07 02:06:44

+0

單個抽象對應(根據我的理解)讓班級對單個任務工作。在單個任務上提供一個圖層。 – 2014-12-07 02:14:27

+0

謝謝。但是,你的意思是什麼? – committedandroider 2014-12-07 02:16:20

回答

3

在這個特殊的背景下,你引用的網站(cohesion)規定,「單一的抽象」是指一個概念。所以它與Single Responsibility Principle緊密相關 - 一個班級應該處理「一件事」。如果一個班級處理的不止一件事情,它通常會有許多不同的方法和變量,這些方法和變量不一定屬於一起,因此它的凝聚力會很低。

這不是一個常用於此目的的詞,從​​我的經驗來看,它更可能用於關於抽象層次/層次的推理,就像您鏈接的其他SO問題一樣。它們涉及不同的規則,即Single Layer of Abstraction Principle

+0

謝謝,這是一個有意義的想法 – committedandroider 2014-12-07 02:17:54