我正在用C ++编写一个小程序,我正面临着如何实现某些东西的选择。
我找到了两个可能的实施方案来解决我遇到的特定问题,并希望您就是否有更好的问题提出建议。比另一个。
我上课了,我们称之为Letter。 我想创造不同的对象' :A,B,C,D ......
每个对象都将在我的软件中多次使用(作为其他对象的属性)。 A将始终相同,因此每次需要A时都不需要创建A对象。
我为每个继承自Letter的A,B,C ......创建一个类。这些类中的每一个都是单身。通过这样做,我可以通过调用A :: getInstance()静态方法在软件的其余部分的任何地方使用A对象。
我将每个A,B,C,D创建为类Letter的对象,并将这4个对象存储在静态数组中。在我的整个程序中,我将使用该数组的内容。为了轻松访问这些对象,我可能会创建一个枚举并将对象存储在地图而不是数组中。
你认为其中一种解决方案应该优先于另一种吗?
正如我先前所说,欢迎任何其他建议: - )
此致
答案 0 :(得分:0)
这里的各个方面可能会影响您的决定。
有些人不喜欢单身,因为他们是全球性的对象而且他们不喜欢全球性的对象。如果您的对象应该是全局的,那么将其设为全局。
有些人认为如果你有一个单例对象,那么它应该是该类的唯一实例。但是,如果你有一个类的几个不同的实例,每个实例都像单例一样,创建多个子类只是为了确保一个类只有一个实例,这是毫无意义的。 (Cocoa编程中的一个示例是NSCharacterSet,其中您有不同的实例,例如表示字母的NSCharacterSet,一个用于数字,一个用于作为Java标识符的一部分有效的字母,依此类推)。
如果要访问数组的第n个元素,则应该只创建一个数组,并且相同的语句可以引用不同的数组元素。看起来你想要具有不同目的的独特对象;使它们成为阵列将再次毫无意义。