在我們的項目之一,我發現這個代碼這是乾淨的編碼嗎? (.NET,C#)
class A
{
private B b = new B();
protected void AMethod()
{
var x = b.DomeSome();
}
}
我的問題,這是編碼的一個「乾淨」的方式?在AMethod中實例化b會更乾淨嗎? 是取決於嗎?
在我們的項目之一,我發現這個代碼這是乾淨的編碼嗎? (.NET,C#)
class A
{
private B b = new B();
protected void AMethod()
{
var x = b.DomeSome();
}
}
我的問題,這是編碼的一個「乾淨」的方式?在AMethod中實例化b會更乾淨嗎? 是取決於嗎?
如果您在創建一個AMethod
B的實例,那麼該變量將後AMethod
結束丟失。所以AMethod
每次調用將創建一個新的對象 B.
在另一方面,具有一流水平的聲明的變量(如在你的例子)將允許你重用B的實例的所有呼叫AMethod
。
沒有就如何更乾淨,除非你向我們提供更多的背景
是它完全取決於在你的要求..這可能需要B
類型的b
可變別的地方也因此它在Class
被宣佈。
而且clean coding
沒有硬定義的規格。保持編碼,只要它的簡潔,可以理解並做它需要做的事情。
此外,我假設你已經更改變量名稱爲A & B張貼在這裏..如果這些都存在於實際的代碼..現在改變!
AMethod中的實例b會更乾淨嗎?
它會有所不同。在當前的代碼中,當A被實例化時,b被實例化。
是否取決於?
是
如果DomeSome
改變的B
狀態的邏輯是不同的,如果B
是對AMethod
每次調用實例確切的答案。
給出了這麼多的代碼:代碼是乾淨的,它取決於。
該示例太抽象,無法對圖案的清潔度發表任何評論。 – SuperIronBob 2011-04-18 16:15:23
當域名無意義時,很難討論這樣的設計問題。請張貼一個有意義的例子,即沒有B的不是A的不是DomeSome的,而是代表某事的類。 – 2011-04-18 16:16:10
codereview.stackexchange.com是這些類型的問題的好網站。 – 2011-04-18 16:16:57