【发布时间】:2019-02-26 16:48:57
【问题描述】:
假设我建立了一个Note(音符)类(note.h,note.cpp)并想为我的图书馆的用户提供一组最常用的Note对象
Note a = Note('a');
Note b = Note('b');
Note c = Note('c');
...
如果用户想使用升 F,他/她需要创建一个 Note('f','sharp') 对象,但为了简单起见,我想提供最常见的根音符作为对象。
有什么可能(和推荐的)方法来实现这一目标?
1) 使用带有extern 声明的头文件和相应的实现文件? (甚至可能是note.h、note.cpp 文件?)
2) 提供静态类方法,如Note Note::a() {return Note('a');} 等。(虽然这种方法对我来说有点冗长......)。
其他解决方案?
【问题讨论】:
-
开发库是最复杂的任务(比开发应用程序困难得多)。有太多变种,我怀疑是否有“推荐”的方式。这取决于整个库的设计。
-
enums 似乎是为此而生的。 (对于构造函数的参数,我的意思是) -
您可能有兴趣查看Flyweight Pattern。