2013-10-16 88 views
0

我有一个使用两个类--A和B的Web表单.A类包含创建CSV和Excel报表所需的所有功能。 B类都是特定于过程的代码。两个类创建对方的实例

整个过程的本质迫使我让Class A调用一个包含在Class B中的方法。这个问题 - 我刚刚发现 - 是Class A需要创建一个Class B的实例来完成这个操作,Class B已经创建了A类的一个实例,导致无限循环。

什么是我处理这个问题的正确方法?如果我只能在方法论上指出正确的方向,我应该能够弄明白。

+0

难道你不能将其中的一个转换为接口(也许是A类),只是在其他类中实现? – Brian

+0

我编辑了你的标题。请参阅:“[应该在其标题中包含”标签“](http://meta.stackexchange.com/questions/19190/)”,其中的共识是“不,他们不应该”。 –

+0

你可以有一个布尔型的构造函数,只有实例化类A(如果它是真的) – tinstaafl

回答

0

你是什么意思的过程特定的代码?如果这是您的业务代码,那么看起来很清楚,两个类之间的区别在于ClassA是您的应用程序服务,而ClassB是您的业务逻辑。

尝试并解开类,以便您的业务类使用CSV类,但是您的CSV类不使用您的业务类。

0

不是让每个类创建对方,而是使用构造函数注入技术,其中每个类在其中存在依赖关系,存储在专用字段中,并在那里使用,而不是创建一个新的,以便无论启动此过程一次创建并根据需要传递给另一个。