我在Stack Overflow、Microsoft Developer Network和几个博客中阅读了很多详细的内容。普遍的共识是“Constructor不应该包含大量的参数”。所以遇到这个让我觉得-
Properties__。因此,这看起来很好用,它使我的生活变得非常简单,因为我可以通过object将class传递到另一个method中,而不必将所有这些变量分配给每个method。但这导致了另一个问题-
public class ServerParameters
{
// Variable:
private string template;
private string sqlUsername;
private string sqlPassword;
private string sqlDatabase;
private string sqlServer;
public ServerParameter(string _template, string _sqlDatabase, string _sqlServer,
string _sqlUsername, string _sqlPassword)
{
template = _template;
sqlUsername = _sqlUsername;
sqlPassword = _sqlPassword;
sqlDatabase = _sqlDatabase;
sqlServer = _sqlServer;
}
// Link the private strings to a group of Properties.
}因此,这个Constructor已经变得非常臃肿--但是现在我需要实现更多的参数。
Constructor,通过实现不完全适合这个特定Class的其他项目。我的解决方案是创建一个subclass或container来保存这些不同的classes,但是能够利用这些classes__。您现在看到了这个难题,它引起了所有重要的问题--当您只能继承一次时,如何构建一个容器来容纳所有这些子类?
和为什么不应该在构造器中使用这么多的参数,为什么它是坏的呢?
我的想法是如何实现一个Container,但是我觉得我做错了--因为当我尝试使用这些Parameters时,我经常会得到Null引用异常。
public class VarContainer
{
private ServerParameter server;
private CustomerParameter customer;
public VarContainer(ServerParameter _server, CustomerParameter _customer)
{
server = _server;
customer = _customer;
}
}我认为这是因为内部类本身并没有真正得到那些赋值变量,但是我完全迷失了实现我的目标的最佳方法-
发布于 2013-06-07 19:16:40
在我看来,您可以使用依赖注入容器,比如统一或温莎城堡。
https://stackoverflow.com/questions/16991152
复制相似问题