-3

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

getOrCreateXXXFor(YYY)
getXXXFor(YYY)

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

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

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

第二个

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

我在考虑要不要改名。你有更好的建议吗?


[编辑] 更具体地说:

  • 名称应该简短而简洁地描述所发生的事情(无需阅读文档)
  • 两种方法的关系应由名称保留

简而言之,它应该会产生一个干净的 API。给事物起一个易于理解的名称是软件工艺的核心部分。该主题与排序数组一样很少基于意见。

4

1 回答 1

2

看看单例模式和/或享元模式

我建议将其实现为 Singleton 并提供 exists 方法。

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;
    }
}
于 2013-10-30T14:58:20.797 回答