2016-03-09 78 views
0

在我的項目中,有很多代碼塊在不同條件下重用。這些塊只是幾行代碼。這些塊的調用遍佈整個程序,一些主題取決於程序運行的模式。C#/ .net重用代碼塊

我現在想要以易於訪問的方式提供此代碼並獲得良好性能。 我有兩次嘗試。

a)創建一個帶有函數的靜態類,每個函數都包含一個代碼塊。

b)創建幾個小類(組件),每個小類使用一個執行方法來保存一段代碼。

我不確定哪個是乾淨的方式來處理這種情況,或者是否有任何最佳實踐方法。

如果您需要更多信息,請讓我知道。

編輯:我試着舉個簡短的例子。該程序可以運行在兩種不同的模式下。每種模式都具有相同的工作流程,但在兩種模式中它們略有不同。一個工作流程就是加載另一個程序集並在兩個程序之間建立通信。在這兩種模式下,我必須調用其他模式中不需要的函數。此調用也出現在程序的其他部分。 這些塊總是以正確的順序在正確的時間調用某些函數。

void WorkflowXY() 
{ 
    Foo.Do(); 
    Foo.DoMore(); 
    if(Mode.A) 
    { 
     //Chunk1, several lines of code, mostly calling other functions 
    } 
    else 
    { 
     //Chunk2, several lines of code, mostly calling other functions 
    } 
} 

void SomewhereElse() 
{ 
    //Code 
    //Chunk2 
    //more code 
} 

void InACompletlyDifferentNamespace() 
{ 
    //Code 
    //Chunk1 
    //more code 
} 
+4

這些「代碼塊」的任何例子? – Svish

+0

有一個靜態的'Helpers'類或類似的東西很常見。如果你有一個主要針對特定​​目的的助手集合,你也可以有一個'PurposeHelpers'類。 –

回答

1

避免Helper類,如果可以的話。他們清楚SRP違規,並傾向於成爲鬆散相關方法的傾銷地。

我贊成你的第二個選擇。恕我直言,班級不能太小。一堂課,一份工作。

This值得一讀。

0

你的「代碼塊」有點不清楚。無論如何,考慮關於靜態與非靜態的another question。它還提到了一種extension方法。如果你不想申請延期,那麼another issue可能適合你的目的。