考虑以下示例:
class Foo
{
private Bar x;
// ...
public Bar getAndResetX()
{
Bar result = x;
x = new Bar();
return result;
}
}
此类方法是否有既定的命名约定?比如yieldX
、transferX
之类的?
最佳答案
我们过去使用约定 Adopt 和 Orphan 作为前缀,以在方法名称中提供意图(摘自 Taligent 关于 C++ 的书籍)。
Bar b = foo.orphanBar(); // take Bar out of Foo
foo.adoptBar(b); // put it right back in
您可以使用类似的方法来提供对象的所有权线索。坦率地说,尽管我会坚持使用添加和删除的Java约定。它们提供了足够的意图,其他程序员不需要阅读解释新约定的注释。
Bar b = foo.removeBar(); // take Bar out of Foo
foo.addBar(b); // put it right back in
关于java - 转移所有权的方法的命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7347869/