将类作为参数传递

时间:2011-06-22 17:59:49

标签: oop api class-design

我有一个需要调用的api方法。它有10个参数。我试图创建一个包含该方法所需的所有信息的类。我可以简单地将对象传递给方法吗?

myAPIMethod(myClass);

这很容易吗?

3 个答案:

答案 0 :(得分:14)

不,它不起作用。如果方法有10个参数,则必须向其传递10个参数。

如果您可以控制API,则可以重构它以接受单个对象。

如果您无法控制API,可以按照

的方式编写方法
public void CallAPI(MyClass args)
{
   myAPIMethod(args.Arg1, args.Arg2); // whatever args are needed for the method
}

然后您的代码可以使用您的类和此方法来调用API。它可能比在应用程序的多个位置直接使用10个参数调用API方法更简洁。但是,这取决于方法是什么以及如何使用它。

答案 1 :(得分:1)

您创建一个类的实例,称为对象,并传递该对象 - 因此“面向对象编程”

如果您的方法需要10个参数,则必须传递10个参数。除非重写方法,否则不能只传递包含10个参数的对象。

答案 2 :(得分:1)

简短回答:不,你做不到。

这不是你想要的,但在某些语言(例如Python)中你可以创建一个名为partial application的东西(有时被错误地称为currying)。这允许您创建一个调用另一个函数的新函数,但预先指定了一些参数。