关于java:寻找更好的方法名称

Looking for better method names

在代码评审中,我将面对一个包含以下方法对的类:

1
2
getOrCreateXXXFor(YYY)
getXXXFor(YYY)

(XXX和YYY是两种业务逻辑类型。)我不确定它们是否是理想的名称。

第一个确实与单例模式有关,但带有一个参数和

  • 返回一个对象(如果存在)或
  • 如果它不存在,则创建并返回它。

第二个

  • 返回与第一个方法相同的对象,但仅当它存在时返回
  • 如果不存在,则抛出一个Exception

我在想他们是否应该改名。你有什么更好的建议吗?

[编辑]更具体地说:

  • 这些名称应该是对发生的事情的简短描述(不需要阅读文档)
  • 两种方法的关系应该用名称来保存

简而言之,它应该产生一个干净的API。给事物起一个好的可理解的名字是软件技术的核心部分。这个主题几乎没有排序数组那样基于意见。


看看单件和/或飞锤图案

我建议将其作为单例实现,并提供一个现有的方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class SingletonDemo {
    private static volatile SingletonDemo instance = null;

    private SingletonDemo() {       }

    public static SingletonDemo getInstance() {
            if (instance == null) {
                    synchronized (SingletonDemo .class){
                            if (instance == null) {
                                    instance = new SingletonDemo ();
                            }
                    }
            }
            return instance;
    }

    public boolean exists() {
        return instance != null;
    }
}