ocp

    1熱度

    1回答

    我最近讀了nice, easy to understand article about open/closed principle。我一直想通過以下經驗: 在真實世界場景的代碼庫是十個,一百個一千次大和修改類意味着重新部署它的組裝/包到五個不同的服務器這可能是一個相當大的問題。哦,在現實世界中Aldford會五次,因爲你讀的最後一句話:-) 如何open/closed principle可以幫助避

    0熱度

    3回答

    下面的ProductService類從數據庫獲取基於不同過濾器(如日期,國家等)的產品。 ProductsService不遵循OCP,因爲添加新的過濾器(如按價格獲取產品)需要更改ProductsService代碼。如何修復?任何建議/意見將非常有幫助。 public class ProductsService : IProductsService { public FilteredP

    0熱度

    4回答

    我正在學習Java 8 Programmer II認證,我正在考慮關係類可以有的。我理解作文,但是我想知道是否在作爲類和類的類變量的集合的元素之間考慮了關係。例如,考慮以下代碼: public class A { static ArrayList<String> strings = new ArrayList<String>(); public A() { str

    0熱度

    2回答

    我不明白接口隔離原理和開放/閉合原理之間有什麼不同。 我的理解是,ISP必須使所有的東西都依賴於接口和類上的OCP,我發現它們都可以用相同的方式實現,只有一個接口和一個類。

    3熱度

    3回答

    的DIP狀態: 高層模塊不應該依賴於低級別的模塊。兩者都應該依賴於抽象。 抽象不應該依賴細節。細節應該取決於抽象。 而OCP狀態: 軟件實體(類,模塊,函數等)應該是開放的 延期,但對修改封閉。 我認爲如果我們滿足DIP,它也會覆蓋OCP,那麼,爲什麼我們將這兩個原則分開?

    4熱度

    1回答

    中的行爲有所不同在學習Java認證測試時,我瞭解到靜態初始化塊在加載類時運行一次,按照源代碼中的外觀順序運行,該實例每次創建實例時都會運行初始化塊,並且每次在此之後創建實例時,構造函數中的代碼都會運行。爲了測試我創建了一個包含一些靜態和實例init塊的類以及一個包含打印內容的構造器。一切按預期工作 - 除了我認爲「加載」意味着在運行時,但我想這是在創建第一個實例時發生的,因爲除非創建至少一個類實例

    5熱度

    1回答

    在本書中,我用它來爲新的Oracle認證專家準備 - 的Java SE7程序員考試,在與方法重載交易的部分,我所遇到的以下內容: 覆蓋方法應該有的作爲基礎版本的相同參數列表類型(或 兼容類型)。 「兼容類型」是什麼意思?我的意思是,只要參數列表類型不同,就會超載,而不是覆蓋。 我只能想到重寫一個採用可變參數的方法,一個採用相同類型的數組。編譯器發出警告,但仍編譯。 兼容類型是什麼意思?這是書中的錯

    1熱度

    1回答

    在我看來,鮑勃馬丁需要一個以O開頭的東西來製作SOLID,並在一些舊書中找到了這個(可能無用的)開放/封閉原則。 開放/關閉如何與單一職責並存,表明一個班級應該有單一的變更理由? 如果我想關注長時間生活系統中的開放/關閉,我是否應該有一個數十/數百個類的鏈,每個類都擴展前一個?

    0熱度

    1回答

    我正在編寫一個圖形瀏覽程序,並且遇到了一點絆腳石。 My圖表由Vertex和NetworkLink對象,並且可以通過查詢一個GeographyModel對象obatined。 想法是List<NetworkLink>從GeographyModel檢索,然後提供給MetaMap以獲得所需的附加信息。 我想要做的是試圖通過創建MetaMap對象堅持以打開/關閉原則通過增加信息的每個NetworkLin

    3熱度

    1回答

    場景 我創建一個動態查詢生成器發送到另一個組件(報表生成器)。 查詢的某些部分有佔位符。例如: SELECT DISTINCT ID, NAME AS VALUE FROM EVENTS WHERE {{ESTABLISHMENTFILTER.ID}} IS NULL OR ESTABLISHMENT_ID = {{ESTABLISHMENTFILTER.ID}} 的數據,以在where子句