我有一个名为ArtificialIntelligenceBase的类,您可以在其中创建自己的人工智能配置,将一些变量发送到构造器,或者创建一个继承自ArtificialIntelligenceBase的类,在这个新类的构造器中,只需使用配置的参数调用函数super()。
我还在AIPassive、AIAgressive和AIDefensive类中创建了一些人工智能的示例。显然,所有这些都是从ArtificialIntelligenceBase继承的。
关键是基类中只有很少的公共函数。基类中的变量是只读的,非公共函数是受保护的,以防在创建另一个预定义的AI时需要对它们进行一些修改。
您还可以创建另一个AI,只需调用基类并在构造函数中发送一些参数,如下所示: new ArtificialIntelligenceBase(param1,param2,param3,param4);
我已经考虑过将类设置为单例,因为类永远不会改变,一旦设置,它们的变量就永远不会改变。
问题是:单例模式是做这件事的最佳模式吗?因为我不确定。
PD:你不需要解释任何模式,只要提到名字,我就会搜索它是如何工作的
PPD:我正在用AS3进行开发。以防万一
谢谢
发布于 2011-05-04 07:24:29
一般而言,singletons are evil。在您的例子中,我也看不到任何使用单例的理由。听起来您正在使用自己版本的factory method模式(以某种方式使用构造函数?)或者是prototype (我一点也不了解AS3 ),但是如果你正在寻找其他的模式,还有几个是abstract factory和builder。
但是,您不需要使用单例模式来限制自己在每种类型的类中只使用一个实例。这无助于避免冗余。
https://stackoverflow.com/questions/5876821
复制相似问题