帮助程序类的设计方法



我希望设计一个类,在某些对象上具有辅助方法。 通常最好的方法是什么。所有函数都将作用于这两个对象。

SomeObj someObj;
AnotherObj anotherObj;
public SomeClass(SomeObj someObj,AnotherObj anotherObj){
this.someObj=someObj;
this.anotherObj=anotherObj;
}
somefunction(){
//act on the instance vars
}

或者我应该有没有实例变量(无状态)的简单类,并使函数接受所需的变量

public SomeClass(){
}
somefunction(SomeObj someObj,AnotherObj anotherObj){
//act on the local vars
}

就设计而言,哪种方法被认为是好的。

如果作用于SomeObjAnotherObj对象的唯一方法是someFunction(),那么它们可能不需要存储为实例变量。如果它们将被使用/需要从 someFunction() 和其他内部方法修改SomeClass的状态,那么我会说它们确实应该被存储。

您可以考虑一些有关SomeClass类实现的替代方法:

  • 如果它没有任何状态,那么这些方法可能应该是静态的
  • 根据操作的复杂程度以及您将拥有的帮助程序方法的数量,您可以使用 Visitor 设计模式
我想

说这取决于如何使用"帮助程序"方法,以及调用类如何与 SomeObj 和 AnotherObj 交互/依赖于 AnotherObj。通过创建 SomeClass 的实例,并使用对 SomeObj 和 AnotherObj 的内部引用,可以将调用类与这些类分离,这可能是一件好事。另一方面,如果调用类已经引用了 someObj 和 otherObj,我认为创建一个额外的对象没有意义,我会改用静态辅助方法。

最新更新