2011-04-18 125 views
-2

在我們的項目之一,我發現這個代碼這是乾淨的編碼嗎? (.NET,C#)

class A 
{ 
    private B b = new B(); 

    protected void AMethod() 
    { 
     var x = b.DomeSome(); 
    } 
} 

我的問題,這是編碼的一個「乾淨」的方式?在AMethod中實例化b會更乾淨嗎? 是取決於嗎?

+5

該示例太抽象,無法對圖案的清潔度發表任何評論。 – SuperIronBob 2011-04-18 16:15:23

+0

當域名無意義時,很難討論這樣的設計問題。請張貼一個有意義的例子,即沒有B的不是A的不是DomeSome的,而是代表某事的類。 – 2011-04-18 16:16:10

+2

codereview.stackexchange.com是這些類型的問題的好網站。 – 2011-04-18 16:16:57

回答

2

如果您在創建一個AMethod B的實例,那麼該變量將後AMethod結束丟失。所以AMethod每次調用將創建一個新的對象 B.

在另一方面,具有一流水平的聲明的變量(如在你的例子)將允許你重用B的實例的所有呼叫AMethod

沒有就如何更乾淨,除非你向我們提供更多的背景

0

是它完全取決於你的要求..這可能需要B類型的b可變別的地方也因此它在Class被宣佈。

而且clean coding沒有硬定義的規格。保持編碼,只要它的簡潔,可以理解並做它需要做的事情。

此外,我假設你已經更改變量名稱爲A & B張貼在這裏..如果這些都存在於實際的代碼..現在改變!

1

AMethod中的實例b會更乾淨嗎?

它會有所不同。在當前的代碼中,當A被實例化時,b被實例化。

是否取決於?

2

如果DomeSome改變的B狀態的邏輯是不同的,如果B是對AMethod每次調用實例確切的答案。

給出了這麼多的代碼:代碼是乾淨的,它取決於。