我正在开发一个声音库(使用OpenAL),并从FMOD提供的界面中获取灵感,您可以看到界面at this link。这段代码如何创建一个只有一个私有构造函数的类的实例?
我已经提供了一些概念,例如:Sound,Channel和ChannelGroup,正如您通过FMOD接口所看到的,所有这些类都有一个私有构造函数,例如,如果要创建一个声音, createSound()由System类提供(如果要创建Channel或ChannelGroup,则相同)。
我想提供一个类似的机制,但我不明白它是如何工作的。例如,功能createSound()如何创建一个新的声音?构造函数是私有的,从Sound接口没有任何静态方法或友谊。是否使用了一些模式?
编辑:只是为了让OP的问题清楚,s /他没有问如何创建一个类的实例与私人构造函数,问题是在链接张贴,如何创建类的实例具有私人构造函数和没有静态方法或朋友功能。
谢谢。
有tou尝试使用朋友成员 – zabulus
该界面看起来相当差。一般来说,“系统”或“神”类被称为反模式。 – MSalters
它是否创建了一个具有公共或朋友构造函数并返回它的子类的实例? – jcoder