我有一个需要调用的api方法。它有10个参数。我试图创建一个包含该方法所需的所有信息的类。我可以简单地将对象传递给方法吗?
myAPIMethod(myClass);
这很容易吗?
答案 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)。这允许您创建一个调用另一个函数的新函数,但预先指定了一些参数。