我有一个名为ArtificialIntelligenceBase的类,您可以从中创建自己的人工智能配置,将一些变量发送到构造函数,或者您可以创建一个继承自ArtificialIntelligenceBase的类,并在此新类的构造函数中调用函数super ()与配置参数。
我还在课堂上创建了一些人工智能的例子,AIPassive,AIAgressive和AIDefensive。显然,所有这些都继承自ArtificialIntelligenceBase。
关键是基类中只有很少的公共函数。基类中的变量是只读的,非公共函数受到保护,以防您在创建另一个预定义的AI时需要对它们进行一些修改。
你也可以创建另一个AI,只需调用基类在构造函数中发送一些参数,如下所示:new ArtificialIntelligenceBase(param1,param2,param3,param4);
我一直想把这些类作为一个单例,因为类永远不会改变,一旦设置,它们的变量永远不会改变。
问题是:单身人士是最好的模式吗?因为我不确定。
PD:你不需要解释任何模式,只需提及名称,我会搜索它是如何工作的 PPD:我正在开发AS3。以防它有帮助由于
答案 0 :(得分:2)
一般来说,singletons are evil。在你的情况下,我认为没有任何理由使用单身人士。听起来你正在使用自己版本的factory method模式(使用构造函数以某种方式?)或者可能是prototype(我不知道AS3一点),但如果你正在寻找对于其他模式,其他几种模式是abstract factory和builder。
但是,您不需要使用单例模式来限制自己仅为每种类型使用一个实例。它无助于避免冗余。