2011-04-18 77 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每次调用实例确切的答案。

给出了这么多的代码:代码是干净的,它取决于。