public class Speech
{
//问题1:
private SpeechLib.SpVoiceClass voice = null;//定义个一个用来发音的类
private Speech()
{
BuildSpeach();
}
private void BuildSpeach()
{
if (voice == null)
voice = new SpVoiceClass();
}
/*****************************************************************/
//问题2:
private static Speech _Instance = null;
public static Speech instance()
{
if (_Instance == null)
_Instance = new Speech();
return _Instance;
}
}问题1中:解释一下 private Speech()里面调用BuildSpeach()方法的作用是什么?BuildSpeach()方法内写的是什么意思?
问题2中:在程序中并没有看到有什么地方调用instance()方法,是不是这种写法特殊?程序运行时自动去调用了?同时解释一下instance()写的内容是什么意思,有什么用途?希望高手指点,感激不尽!!!!!
问题二:晕死,这个程序没有调用,在别的地方调用了的呀!这个就是初始化的意思。
up这个是单态模式,private Speech()是个私有的构造函数,这使得Speech类无法在外部用使用new的方式来获得其对象
问题1:在构造函数private Speech()中调用的方法BuildSpeach()的作用就是获得一个SpVoiceClass类型的对象并赋值给voice问题2:之前已经说了这是单态模式,所以无法使用new的方式来得到类的对象,所以这里定义了一个静态方法instance()来返回一个Speech类的对象,而静态方法是使用类名来调用的
以上是个人的理解,如有不对的地方还请指正
==>从你发出来的代码确实不知在哪里有用,不过这个静态方法返回的是Speech的实例,应该是在其它地方有调用
Speech sp = Speech.instance();//Speech类实例